Qt建立子窗體

2021-06-19 09:40:09 字數 963 閱讀 5443

qt建立子窗體這裡說明一點問題;

一:子視窗建立方式:

qt窗體上的子窗體一般是「new」建立的,當父窗體刪除的時候,同時也會清理相關的子窗體;

如果子窗體不是「new」建立的,而是用static變數建立,關閉父窗體的時候會程式崩潰,原因應該是父窗體刪除到static子窗體時不對;

如://主窗體函式:

void slot_newwidget()

二:子視窗設定方式:

(1):通常情況下,對於乙個繼承與qwidget的子窗體,直接 new newqwidget1(this);(或setparent(this)) 引數設定為父窗體,然後 show(),這樣就可以在指定視窗上建立子視窗;

(2):如果 乙個視窗繼承與qdialog,用這種方法,

newqwidget1 * pnewqwidget1 = new newqwidget1(this);

pnewqwidget1->show();

只是建立了乙個非模態對話方塊,如果想要這個飛模態對話方塊顯示到指定視窗上,解決方法:

設定這個視窗的屬性:

(1):pnewqwidget1->setwindowflags(qt::widget); //直接設定qdialog為qwidget;

pnewqwidget1->show(); //設定後重新顯示;

(2):

pnewqwidget1->setwindowflags(qt::subwindow); //設定qdialog為子視窗屬性;

pnewqwidget1->show(); //設定後重新顯示;

(3):

pnewqwidget1->setwindowflags(qt::customizewindowhint|qt::framelesswindowhint);//設定自定義無邊框視窗;

pnewqwidget1->show(); //設定後重新顯示;

以上簡單列舉三種方法,但是可以根據具體需求設定;

Qt簡單窗體程式全介面建立過程

qt簡單窗體程式全介面建立過程 qt單窗體程式全介面建立過程 1 建立工程檔案 hello.pro 新建終端,designer new file project c project ok project file hello.pro ok 2 建立窗體檔案 hello form.ui file ne...

QT 子窗體 最大化 介面顯示不對

qt 子窗體 最大化 復原 遇到的問題 專案中有個需求,主窗體中巢狀子窗體,需要將子窗體最大化顯示和復原。查了很多資料,基本上都是提到 qt中視窗部件qwidget成員函式showfullscreen 是用於將視窗部件全屏顯示,但是他只對視窗模式的部件有用。子視窗的特徵是 qt subwindow,...

QT將窗體變為頂層窗體

在windows 上通過滑鼠雙擊某應用程式圖示,該應用程式往往會以頂層視窗的形式呈現在我們面前,但是對於乙個已經開啟的非頂層視窗,我們怎麼將其啟用為頂層視窗呢?要達到啟用,這個必須要滿足兩個條件 有通知啟用的人,這個人必須是另乙個應用程式 或同一應用程式的不同示例 他能傳送資訊給該窗體 該窗體能夠解...