如何在 QWidget 視窗上彈出右鍵選單

2021-09-06 14:17:16 字數 1070 閱讀 8983

title :

solution 1 :

給乙個 qwidget 新增 qactions,設定qwidget 的 contextmenupolicy 屬性為 qt::actionscontextmenu 值,使得視窗選單以這些新增的 qactions 為選單項組成乙個右鍵選單。

2:     : qwidget(parent)
3:
效果:

solution 2 :

重寫 qwidget 的被保護的虛函式void qwidget::contextmenuevent ( qcontextmenuevent * event )[virtual protected],設定qwidget 的 contextmenupolicy 屬性為 qt::defaultcontextmenu 值,其實預設就是這個值,不用顯示設定。

1: mywidget::mywidget(qwidget *parent)
2:     : qwidget(parent)
3:
7:
8:
9: void mywidget::contextmenuevent(qcontextmenuevent *event)
10:
效果:

上面直接是在 contextmenuevent 函式體裡面 new 了個選單和一些選單項,這是為了演示。實際在寫程式的過程中,我們往往會把這些 qaction 和 qmenu 宣告為私有的成員變數,在構造 widget 的時候,或者第一次呼叫 contextmenuevent 時初始化它們,把它們的某些訊號(signal)與其它元件的某些槽(slot)連線以處理一些事件,比如說單擊上面演示的open專案會彈出乙個對話方塊,單擊quit會退出程式等等。

關於瀏覽器上彈出視窗的探索

以前很多系統選擇 使用的是點乙個按鈕,彈出乙個視窗,選擇以後,填寫好視窗上選擇的內容,記得hz2004是用windows.open實現的,查詢了一下發現widnows.open應該沒辦法實現modal的模式,後來發現還有乙個函式 window.showmodaldialog 例子 問題一 我想彈出乙...

WPF如何彈出視窗

title wpf如何彈出視窗 author kagula date 2013 12 09 lastupdatedate 2020 02 11 測試環境 1 vs2010sp1,vs2019 community 2 wpf net framework 4 專案,net core3.1 內容簡介 wp...

如何在其他程式的視窗上建立按鈕並使之能響應

如何在其他程式的視窗上建立按鈕並使之能響應ac952 z cn 環境 windows nt 2000 實現方法 採用將動態連線庫注入到其他程序中的方法來實現。為了便於選擇視窗,我借用了另乙個程式 2000下顯示帶 號 來選擇視窗。如果要在98下實現你可用鉤子同樣實現。程式執行介面如圖一 圖一將動態連...