区分窗口部件和子部件
窗口部件:没有父部件的部件,也称为顶部件。 子部件:嵌入在窗口的部件。
#include<QtWidgets> int main(int argc,char *argv[]) { QApplication a(argc,argv); QWidget *widget=new QWidget(); widget->setWindowTitle(QObject::tr("我是widget")); QLabel *label=new QLabel(); label->setWindowTitle(QObject::tr("我是label")); label->setText(QObject::tr("label:我是个窗口")); label->resize(180,20); QLabel *label2= new QLabel(widget); label2->setText(QObject::tr("label2:我不是独立窗口,只是widget的字部件")); label2->resize(250,20); label->show(); widget->show(); int ret=a.exec(); delete label; delete widget; return ret; }运行结果: 其中widget、label为窗口,label2为子部件。因为在程序中定义了一个QWidget类对象的指针widget和两个QLabel对象指针label与label2,其中label没有父窗口(没有父窗口就是窗口),而label2在widget中,widget是其父窗口。
注意:代码中使用new操作符为label2分配了空间,但是并没有使用delete释放,是因为Qt中销毁父对象的时候会自动销毁子对象。
设置窗口部件QWigdet格式 修改创建对象的那个两行代码:
0QWidget *widget=new QWidget(0,Qt::Dialog); QLabel *label=new QLabel(0,Qt::SplashScreen);运行结果: (1)在现实生活中会遇到各式各样的窗口,在程序示例中有一个Window Flags演示了所有窗口类型。 (2)还可以用setWindowState()函数设置窗口widget的状态。具体可参考手册。
