Qt控制項父物件的確認

2021-06-26 01:17:10 字數 1437 閱讀 5102

qt控制項父物件的確認

如果是是通過手動編寫程式的方式來設計介面,則在編寫**時手動指定各控制項的父物件;

如果是使用qt設計師來設計介面,則各控制項的最終父物件為該介面類的物件。

如有乙個查詢對話方塊介面,則qt為其自動生成的介面類**如下:

標頭檔案:

#ifndef

finddlg_h

#define

finddlg_h

#include

namespace

ui

class

finddlg

:public

qdialog

;
#endif

//finddlg_h

這其實是使用單繼承方式來使用ui(關於使用ui的更多細節請參閱《在qt中如何使用qtdesigner建立的ui檔案》)。

實現檔案:

#include

"finddlg.h"

#include

"ui_finddlg.h"

finddlg::finddlg(qwidget

*parent):

qdialog(parent),

ui(new

ui::finddlg)

finddlg::~finddlg()
以上**除注釋處為手動新增之外,其餘均為qt自動生成的**。 從以上**中可發現,在構造finddlg的時候,先執行setupui,並傳入引數this。setupui的部分**如下:

void

setupui(qdialog

*finddlg)

可見,在setupui時,qt為各控制項設定了父物件,但所有控制項的最終父物件都為setupui時傳入的this,也就是finddlg的物件。

這一點可通過以上程式來驗證:

由於qt在刪除物件時會自動刪除其子物件,因此無需顯式

delete

這些用qt設計師新增的控制項。

Qt控制項父物件的確認

1 qt findchild 及動態初始化窗體布局 原創 2 在qt中如何使用qtdesigner建立的ui檔案 一 3 在qt中如何使用qtdesigner建立的ui檔案 二 qt控制項父物件的確認 如果是是通過手動編寫程式的方式來設計介面,則在編寫 時手動指定各控制項的父物件 如果是使用qt設計...

qt5之繫結父物件

qt5幫助文件 fn f1可看幫助文件 1,qwidget基類提供了乙個setgemetry函式,設定子視窗部件的大小以及子視窗部件在父視窗的位置 setgemetry int x,int y,int w,int h 在 x,y 處顯示w h大小的視窗2,qstring字串說明 str qstrin...

Qt中父視窗呼叫子視窗的控制項

父視窗為a9mechanical,它用來查詢資料庫中滿足條件的資料,並且顯示在控制項tableview中,當雙擊tableview中某一行資料時,改行資料的最後一列的內容顯示在子視窗的textedit控制項中 子視窗為showcontent,它用來顯示tableview中雙擊選中的某行資料。需要將s...