控件(Widget)是用户界面的基本单位:它从窗口系统接收鼠标、键盘和其他事件,并在屏幕上绘制自身。每个部件都是矩形的,按Z顺序排序。一个部件会被它的父部件和它前面的部件遮挡。
未嵌入父窗口部件通常有一个框架和一个标题栏,虽然可以通过代码加以屏蔽,但在Qt中,QMainWindow和QDialog的各种子类仍是最常见的窗口类型。
每个部件的构造函数都接受一个或两个标准参数:
QWidget *parent = nullptr
当使用默认值nullptr定义一个部件,它将没有父窗口(自身成为窗口)
(除非您指定 Qt::Window 窗口标记).Qt::WindowFlags f = { }
设置窗口标志;默认值适用于大多数小部件,但要获得一个没有窗口系统框架的窗口,必须使用特殊的标志。
QWidget有许多成员函数,但有些成员函数几乎没有直接功能。例如:QWidget有一个字体属性,但基本不会被使用。有许多子类提供了真正的功能,如:QLabel、QPushButton、QListWidget和QTabWidget。
顶级窗口部件和子部件
没有父窗口的窗口部件始终是一个独立的窗口(顶级窗口部件)。对于这些部件,可能通过setWindowTitle()和setWindowIcon()分别设置标题栏和图标。
Qt中的大多数部件主要用作子部件。例如:虽然可以将按钮显示为顶级窗口部件,但大多数人更喜欢将按钮放在其他部件中,如