标签:
QWidget类是所有用户界面对象的基类,被称为基础窗口部件。
#include <QApplication> #include<QLabel> #include<QWidget> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 新建QWidget类对象,默认parent参数是0,所以它是个窗口 QWidget *widget = new QWidget(); // 设置窗口标题 widget->setWindowTitle(QObject::tr("我是widget")); // 新建QLabel对象,默认parent参数是0,所以它是个窗口 QLabel *label = new QLabel(); label->setWindowTitle(QObject::tr("我是label")); // 设置要显示的信息 label->setText(QObject::tr("label:我是个窗口")); // 改变部件大小,以便能显示出完整的内容 label->resize(180, 20); // label2指定了父窗口为widget,所以不是窗口 QLabel *label2 = new QLabel(widget); label2->setText(QObject::tr("label2:我不是独立窗口,只是widget的子部件")); label2->resize(250, 20); // 在屏幕上显示出来 label->show(); widget->show(); return a.exec(); }
1. Qt中把没有嵌入到其他部件中的部件称为窗口,一般窗口都有边框和标题栏,就像程序中的widget和label一样。窗口就是没有父部件的部件,所有又称为顶级部件.与其相对的是非窗口部件,又称为子部件.
2.针对于以上这种简单的说法有弊端,如:QDialog为窗口是毋庸置疑的吧,但是在使用对话框时为其指定父窗口也是在正常不过了;
3.本人所看书上最后还有两句代码delete label; delete widget;,但是添上这两句后运行结果会在后台显示,不会出现在桌面上;
4.程序中程序中label没有父窗口,而label2在widget中,widget是其父窗口。程序中使用new为label2分配了空间,但是并没有使用delete进行释放,这是因为在Qt中销毁父对象的时候会自动销毁子对象。
标签:
原文地址:http://www.cnblogs.com/scf141592/p/4983669.html