QT將窗體變為頂層窗體

2021-09-19 09:24:21 字數 921 閱讀 1675

在windows

上通過滑鼠雙擊某應用程式圖示,該應用程式往往會以頂層視窗的形式呈現在我們面前,但是對於乙個已經開啟的非頂層視窗,我們怎麼將其啟用為頂層視窗呢?

要達到啟用,這個必須要滿足兩個條件:

有通知啟用的人,這個人必須是另乙個應用程式(或同一應用程式的不同示例),他能傳送資訊給該窗體;

該窗體能夠解析出該訊息。

至於乙個應用程式如何向另乙個應用程式傳送訊息的方法有很多,如共享記憶體,網路的方式等等。這裡就不做詳述。了前面的兩個條件,假設現在該窗體所在的應用程式解析到了另乙個應用程式的通知啟用訊息,那麼該窗體怎麼將其啟用為桌面的頂層窗體呢?

void cwidget::activatewindow()

setwindowstate(qt::windowminimized);

setwindowstate(qt::windowactive | winstatus);

setgeometry(curgemrect);

activatewindow();

raise(); }

通過在窗體處理函式中呼叫上述函式,就可以將該窗體設為頂層窗體,其中,

cwidget

派生自qwidget

(當然其他窗體也行,只要窗體的最終父類是

qwidget

就行),

curgemrect

是cwidget

的成員變數,用來儲存窗體的幾何位置,這樣就能記住窗體上一次彈出的位置,不過還要過載兩個函式,

resizeevent

和moveevent

,以保證窗體大小和位置改變後能時刻記住其位置。

voidcwidget::resizeevent(qresizeevent*event)

void cwidget::moveevent(qmoveevent *event)  

Qt 圓角控制項,圓角窗體,滑鼠拖動窗體

1.設定圓角控制項 connectpb setstylesheet border 2px groove gray border radius 10px padding 2px 4px 設定圓角按鍵 2.設定圓角窗體 setwindowflags qt framelesswindowhint qbit...

QT實現不規則窗體和透明窗體

不規則窗體的實現有兩種方式 一種是設定窗體的掩碼影象 另一種是設定窗體背景透明,然後重寫其繪圖函式,將背景圖繪製上去。第一種方式 首先要準備兩張影象,一張是要顯示的影象,另一張是第一張圖的掩碼影象,黑色部分是你的窗體要顯示的部分,如圖 具體實現的關鍵 如下 irregularform1 irregu...

QT實現不規則窗體和透明窗體

不規則窗體的實現有兩種方式 一種是設定窗體的掩碼影象 另一種是設定窗體背景透明,然後重寫其繪圖函式,將背景圖繪製上去。第一種方式 首先要準備兩張影象,一張是要顯示的影象,另一張是第一張圖的掩碼影象,黑色部分是你的窗體要顯示的部分,如圖 具體實現的關鍵 如下 irregularform1 irregu...