當前位置:編程學習大全網 - 網站源碼 - qt部件構造函數問題

qt部件構造函數問題

QObject 提供了信號與槽、多語言、Qt垃圾回收等Qt核心機制。它是Qt中所有對象的基類。

QWidget,顧名思義,就是窗體部件的基類,比如QDialog、QLabel等都直接或間接繼承自它。它提供了壹些窗體部件專有的信號與槽。QtWidget自然也繼承自QObject。

壹般上,在使用Qt

Creator創建壹個類時,Qt會詢問妳該類的基類是什麽、類型信息是什麽等。如果妳的類是繼承自形如QPushButton、QDialog、

QMainWindow、QLabel的,那麽,使用explicit MyLabel(QWidget *parent =

0);。如果妳的類繼承自QString等類,那麽使用explicit MyString(QObject*parent = 0);。

這裏的QObject *parent也好,QWidget *parent也好,都是為了給對象指定從屬關系。比如,

explicit MyLabel(QWidget *parent = 0);

這樣:

QDialog dialog;

MyLabel *label = new MyLabel(&dialog);

就指定了label是作為dialog的壹個child存在的。當dialog被銷毀時,它的所有children都會被自動銷毀。所以在Qt中,只要我們在動態創建對象時顯式或隱式(比如通過Layout、setCentralWidget等)指定了對象的從屬關系,那麽這個對象就會在其父對象銷毀的時刻被Qt自動銷毀,而無需妳自己再調用delete了。

  • 上一篇:怎樣查看英雄聯盟好友在其它區的遊戲記錄
  • 下一篇:我想用ffmpeg命令行轉換壹個視頻文件,視、音頻編碼格式不變,只是將畫面旋轉90度,請問命令行該如何寫?
  • copyright 2024編程學習大全網