本篇将总结Qt的窗体——QWidget、QMainWindow和QDialog。很多人对这三个类傻傻分不清楚,其实简单来讲QWidget是所有窗体的基类,而QMainWindow和QDialog都是QWidget的子类,QMainWindow是一种具有标题栏,菜单栏,工具栏和状态栏的窗体,QDialog是我们通常说的对话框。
QWidget
widget是最基本的用户界面接口,它可以响应鼠标、键盘和其他系统事件,在屏幕上绘制出的窗体。每个widget都是矩形形状的,并且在垂直于屏幕的方向排序。嵌入到父窗体中的widget被称为window。通常来说,windows具有框架和标题栏,比如QMainWindow和QDialog都是windows。
每个widget的构造函数都接受两个参数,分别是:
- QWidget *parent = 0 是要创建的新窗体的父窗体。默认是0,表示新的窗体是一个新的window。如果不是0, 则将创建一个窗体的子窗体,将被父窗体的坐标限制。
- Qt::WindowFlags f = 0 设置窗体的属性。比如设置无边框则需要设置它。
QWidget拥有很多的成员函数,但是很多都是虚函数,这些功能的实现都将有大量的子类的函数实现,如QLabel,