QWidget教程
发布网友
发布时间:2024-09-29 23:52
我来回答
共1个回答
热心网友
时间:2024-10-04 13:25
QWidget类的构造函数为
1.1 独立窗口
窗口是否独立取决于Qt::Window标志的存在。顶级窗口为独立窗口,但独立窗口可以有父窗口。独立窗口通常具有外边框和标题栏,具备移动、调整大小等功能。判断窗口是否为独立窗口的成员函数包括:
获取窗口所在独立窗口的函数和获取父窗口的函数。
1.2 窗口标题
窗口标题由WindowTitle属性表示,相关的成员函数如下。
1.3 几何参数
窗口的几何参数分为外边框所占矩形区域和客户区所占矩形区域。使用QRect属性代表这两套参数,相关成员函数包括:
虽然没有直接设置外边框几何参数的函数,但调整客户区几何参数会导致外边框几何参数的相应变化。移动或调整窗口大小会导致窗口移动事件和窗口大小改变事件的触发,即moveEvent和resizeEvent。
注意:在moveEvent或resizeEvent事件处理函数中设置几何参数会导致无限循环。几何参数也可能由用户操作改变。
1.4 可见性与隐藏
窗口可见性由visible属性表示。可见性为true表示窗口可见,为false表示窗口不可见。setHidden函数实际上用于设置窗口隐藏状态,而不是可见性。可见性和隐藏性存在对应关系。
1.5 窗口状态
独立窗口具有正常、全屏、最大化和最小化等状态。全屏状态下窗口边框和标题栏消失,客户区占据整个屏幕。状态仅对独立窗口有效,对窗口部件无意义。windowState属性与窗口状态相关。
1.6 使能
窗口的使能状态决定了是否可以处理键盘和鼠标等输入事件。enabled属性表示使能状态,设置属性的函数同时也是槽。使能状态影响窗口外观。
1.7 激活状态
激活状态决定了哪个窗口接收系统输入事件。激活状态由独立窗口控制,窗口部件没有激活状态概念。激活状态相关成员函数包括:
窗口获得或失去焦点时,将发送QFocusEvent事件,有forceInEvent和focusOutEvent两个处理函数。
1.8 焦点
窗口部件需要独立窗口处于激活状态才能接收键盘事件。获得焦点后,窗口部件可以处理键盘事件。
1.9 捕获键盘和鼠标事件
窗口部件获得焦点后,可能无法捕获键盘或鼠标事件,其他窗口可能捕获事件。捕获事件的窗口将得到所有事件,其他窗口则得不到事件。捕获键盘和鼠标事件的成员函数如下:
捕获事件的窗口可以通过成员函数查询。
1.10 布局
窗口的顶级布局由layout属性表示。属性相关的成员函数包括:
1.11 字体
窗口字体由font属性表示。如果没有设置字体,则窗口使用父窗口的字体,顶级窗口使用应用程序的默认字体。成员函数包括:
1.12 信号
窗口析构时发射信号,继承自QObject类。成员函数包括:
1.13 槽
介绍常用的槽,包括关闭窗口的槽以及提升或降低堆叠层次的槽。
1.14 事件
处理窗口事件,包括窗口事件、键盘事件、鼠标事件、焦点事件和定时器事件。事件处理函数包括:
1.14.1 键盘事件
通过QKeyEvent类成员函数获取按键信息。
1.14.2 鼠标事件
通过QMouseEvent事件成员函数获取鼠标信息。
1.14.3 焦点事件
焦点事件处理函数没有返回值,需要使用QEvent类的成员函数接受或拒绝事件。
1.14.4 定时器事件
QTimerEvent类描述定时器事件,成员函数包括starttimer、timerid和timerEvent。