一、QWidget介绍
QWidget是用户操作的原子接口,它从窗口系统中接收鼠标,键盘以及其他事件,并绘制图形界面。QT提供的默认窗口基类只有QMainWindow、QWidget、和QDialog这三种,QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话框的基类,而它们全部继承自QWidget。不仅如此,所有的窗口部件都继承自QWidget,继承关系如图所示。
二、使用
2.1 QWidget类的构造函数如下:
QWidget(QWidget *parent =0,Qt:WindowFlags f =0);
其中参数parent指向父窗口。如果这个参数为0,则该窗口就成为一个顶级窗口。当父窗口被删除时,子窗口也将被删除。参数f是构造窗口的标志,主要用于控制窗巳的类型和外观等。它可以被设置为以下值
2.2 独立窗口
窗口构造的时候如果有 Qt::Window 标志,那么它就是一个独立窗口,否则就是一个依附于其他独立窗口的窗口部件。顶级窗口一定是独立窗口,但独立窗口不一定是顶级的,它可以有父窗口,当父窗口被析构时它也会随之被析构。独立窗口一般有自己的外边框和标题栏,可以有移动、改变大小等操作。一个窗口是否为独立窗口可用下面的成员函数来判断:
bool isWindow() const; // 判断是否为独立窗口
2.3 几何参数
这里的几何参数指的是窗口的大小和位置。一个窗口有两套几何参数,一套是窗口外边框所
占的矩形区域,另一套是窗口客户区所占的矩形区域。所谓窗口客户区就是窗口中去除边框和标题栏用来显示内容的区域。
这两套几何参数分别由两个 QRect 型的属性代表,相关的成员函数如下:
const QRect &geometry() const; // 获取客户区几何参数
void setGeometry(int x, int y, int w, int h); // 设置客户取几何参数
void setGeometry(const QRect &rect); // 设置客户区几何参数
QRect frameGeometry() const; // 获取外边框几何参数
三、实例
#include "widget.h"
#include <QApplication>
#include<QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc,argv);
QWidget w(0,Qt::Widget//默认窗口类型
// | Qt::FramelessWindowHint//没有边框的窗口
// | Qt::WindowStaysOnTopHint //总在最上面的窗口
// | Qt::CustomizeWindowHint //自定义窗口标题栏,
// | Qt::WindowTitleHint //显示窗口标题栏
// | Qt::WindowSystemMenuHint //显示系统菜单
// | Qt::WindowMinimizeButtonHint //显示最小化按钮
// | Qt::WindowMaximizeButtonHint //显示最大化按钮
// | Qt::WindowMinMaxButtonsHint //显示最小化按钮和最大化按钮
// | Qt::WindowCloseButtonHint //显示关闭按钮
);
w.setWindowTitle(QObject::tr("我的第一个QT程序"));
w.show();
return a.exec();
}
参考:
Qt5开发学习总结(三)——窗口部件的使用(QWidget和QDialog)_万般滋味皆生活的博客-CSDN博客_qwidget在qt5哪个模块中