QT基礎(二)窗口部件

區分窗口部件和子部件

窗口部件:沒有父部件的部件,也稱爲頂部件。
子部件:嵌入在窗口的部件。

#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的狀態。具體可參考手冊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章