Qt視窗置頂啟用

2022-09-15 03:06:11 字數 1821 閱讀 3699

系統環境:windows10 64位企業版

開發環境:vs2017+qt5.9.9+vsaddin2.7.2.2

問題:qt介面程式主介面置頂,並一直獲取焦點使qt主視窗一直處於啟用狀態。

通過函式setwindowflags設定屬性:qt::windowstaysontophint即可(setwindowflags(qt::customizewindowhint);//視窗位置為普通)。

具體設定方法:通過main函式主窗體物件呼叫。

例如:

w.setwindowflags(qt::windowstaysontophint);
檢視**

只顯示關閉按鈕:

1

//右上角只有乙個關閉按鈕,和原始視窗關閉按鈕一致

2this->setwindowflags(qt::windowclosebuttonhint | qt::windowstaysontophint);34

//右上角只有乙個關閉按鈕,和原始視窗關閉按鈕樣式不一致,小一些

5this->setwindowflags(qt::tool);67

//右上角顯示「?」幫助按鈕

8this->setwindowflags(qt::windowcontexthelpbuttonhint);910

//右上角顯示「最小化」按鈕,關閉和最大化也同時顯示

11this->setwindowflags(qt::windowminimizebuttonhint);

1213

//右上角顯示「最大化」按鈕,關閉和最小化也同時顯示

14this->setwindowflags(qt::windowminmaxbuttonshint | qt::windowclosebuttonhint | qt::windowstaysontophint);

1516

//最大化、最小化、關閉按鈕這一行工具欄不顯示

17this->setwindowflags(qt::framelesswindowhint);

在程式執行主題部分設定定時器,然後啟動定時器,構造連線槽使定時器和啟用視窗的相關操作相關聯。

本示例把定時器放在qt程式的main函式內部,具體main函式如下:

); return a.exec();

}檢視**

缺點:定時重複啟用主視窗,即使不需要重新啟用視窗也會重複啟用,浪費計算資源。

過載主窗體類的changeevent函式,然後在這個過載函式內部啟用qt視窗。

主窗體標頭檔案(*.h)需要新增過載宣告,如下:

protected:

//過載事件

void changeevent(qevent *event);

檢視**

主窗體實現檔案(*.cpp)需要新增相應實現,如下:

void getmousergb::changeevent(qevent *event)

else}}

檢視**

注意:changeevent過載函式啟用視窗前需要msleep,否則不能重新啟用視窗。

和上面方法類似,只是置頂使用函式不一樣,樣例如下(標頭檔案不再贅述):

void getmousergb::changeevent(qevent *event)

else}}

檢視**

具體**如下:

void getmousergb::changeevent(qevent *event)

else}}

檢視**

MFC視窗去邊框 置頂 全屏 啟用

靜態移除長提邊框非常easy,直接設定 border 屬性為 none 就可以 maximize box minimize box 設定是否顯示 最大化 最小化button。system menu 設定 是否顯示 關閉button 1.中動態移除視窗邊框的方法 dword dwstyle getst...

qt設定視窗置頂 Qt主窗體顯示最前

然而今天在qt中,沒有類似函式供呼叫。嘗試了activewindow,show,shownormal,showmaximized 等函式還是不行。網上有方法設定窗體的windowflags,具體方法為 pmainform setwindowflags pmainform windowflags qt...

視窗置頂 取消置頂工具

include pragma comment linker,subsystem windows int winapi winmain hinstance hinstance,hinstance hprevinstance,lpstr lpcmdline,int icmdshow setwindowp...