PyQt5 實現右鍵選單
QWidget 及其子類均支援右鍵選單功能,通過宣告 ContextMenuPolicy 啟用選單
Qt.DefaultContextMenu | 預設選單,重寫 contextMenuEvent() 實現自定義 |
Qt.NoContextMenu | 無選單,事件響應傳遞給部件父級 |
Qt.PreventContextMenu | 無選單,事件響應不繼續傳遞 |
Qt.ActionsContextMenu | 事件選單,只響應部件事件,部件子件的事件不響應 |
Qt.CustomContextMenu | 使用者自定義選單,需繫結事件 customContextMenuRequested,並實現 槽函式 |
# self inherit QWidget self.setContextMenuPolicy(Qt.DefaultContextMenu) # contextMenuEvent() self.setContextMenuPolicy(Qt.NoContextMenu) self.setContextMenuPolicy(Qt.PreventContextMenu) self.setContextMenuPolicy(Qt.ActionsContextMenu) self.setContextMenuPolicy(Qt.CustomContextMenu) # customContextMenuRequested()
1、實現使用者選單
class handler_demo(QWidget, Ui_demo): def __init__(self): super().__init__() self.setupUi(self) # self inherit QWidget self.table_widget.setContextMenuPolicy(Qt.CustomContextMenu) self.table_widget.customContextMenuRequested.connect(self.custom_right_menu) def custom_right_menu(self, pos): menu = QMenu() opt1 = menu.addAction("menu1") opt2 = menu.addAction("menu2") action = menu.exec_(self.table_widget.mapToGlobal(pos)) if action == opt1: # do something return elif action == opt2: # do something return else: return
2、使用事件選單 # TODO
class handler_demo(QWidget, Ui_demo):
def __init__(self):
super().__init__()
self.setupUi(self)
# self inherit QWidget
self.table_widget.setContextMenuPolicy(Qt.ActionsContextMenu)
self.table_widget.customContextMenuRequested.connect(self.custom_right_menu)
def custom_right_menu(self, pos):
menu = QMenu()
opt1 = menu.addAction("menu1")
opt2 = menu.addAction("menu2")
action = menu.exec_(self.table_widget.mapToGlobal(pos))
if action == opt1:
# do something
return
elif action == opt2:
# do something
return
else:
return
3、重寫預設選單 # TODO
class handler_demo(QWidget, Ui_demo):
def __init__(self):
super().__init__()
self.setupUi(self)
def contextMenuEvent(self, event):
menu = QMenu()
opt1 = menu.addAction("menu1")
opt2 = menu.addAction("menu2")
action = menu.exec_(self.table_widget.mapToGlobal(event.pos()))
if action == opt1:
# do something
return
elif action == opt2:
# do something
return
menu.move(event.pos())
menu.show()
參考資料
相關推薦
PyQt5 實現右鍵選單
QWidget 及其子類均支援右鍵選單功能,通過宣告 ContextMenuPolicy 啟用選單 Qt.DefaultContextMenu 預設選單,重寫 contextMenuEvent(
win32 實現右鍵選單
contextMenu.h #ifndef _CONTEXTMENU_H_ #define _CONTEXTMENU_H_ #include <windows.h> #define ITEM_MENU_FULLSCREEN 40001 #define ITEM
QListWidget的item上實現右鍵選單
。 問題:如何實現在一個列表中點選右鍵,如果在Item上面,則有“修改”選項,在其餘空白處,則只有“新增”,"刪除"選項。 實現右鍵選單, 從QListWidget中派生出ListWidget,重寫 void QWidget::contextMenuEvent ( QContextMenuEvent * ev
tkinter實現右鍵選單
一 程式碼 import tkinter root = tkinter.Tk() menu = tkinter.Menu(root,tearoff=0) menu.add_command(label
zTree結合jquery.contextMenu.js實現右鍵選單
var zTree; var demoIframe; var selectNode; var flag=true; var setting = { view: { dblClickExpand: false,
VC++實現生成右鍵選單及新增圖示
用VC++實現彈出選單比較簡單,這裡介紹其中的一種來實現一個滑鼠右鍵彈出選單,效果如下圖所示: 步驟: 一、新建一個基於對話方塊的MFC應用程式-----PopMenu 二、新增一個選單資源------IDR_MENU1,並加幾個子項,如下 &nb
jxbrowser 實現自定義右鍵選單 jxbrowser破解版請聯絡作者
QQ 921888199 public static void main(String[] args) { JPopupMenu.setDefaultLightWeightPopupEnabled(false); Browser browser =
Dev DevExpress之treelist右鍵選單實現
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
TreeList屬性設定以及右鍵選單實現
AllowSort = False,//關閉排序 AllowEdit = False//不能編輯 --------右鍵選單實現 新增右鍵流程: 1.先在窗體上拖兩個控制元件,分別是popupMenu和barManager 2.barManager中繫結form屬性為當前窗體名稱 3
python3實現tkinter視窗懸浮,右鍵選單操作,多執行緒控制
專案需要,做了一個demo直接上程式碼供大家參考,並且留為記錄 需要更深入瞭解,可以加微信qypangu相信交流,請注時"csdn python" #!/usr/bin/python3 # -*- coding: utf-8 -*- import tkinter im
nz-tree的右鍵選單的實現, 以及選中狀態的實現
ant design of angular中的nz-tree在官方例項並沒有給出和context menu的例子, 不過官方的context menu獨立的例子倒是有: https://ng.ant.design/components/drop
[原始碼和文件分享]修改登錄檔實現新增滑鼠右鍵選單選項
背景 我們安裝一些應用程式的時候,經常都會看到程式安裝完後,會建立滑鼠右鍵選單項,方便使用程式。建立系統右鍵選單項,通常都會使用擴充套件Shell介面來實現,會涉及到COM的相關知識,碎語初學者來說比較難理解。 現在,本文介紹一種簡單的方法實現相同的功能。就是,修改登錄檔來實現。現在,把功能
【Qt】選單欄、工具欄、狀態列、右鍵選單的實現
在QMainWidget基礎上實現選單欄、工具欄、狀態列、右鍵選單。 標頭檔案: #ifndef GWDEMO_H #define GWDEMO_H #include <QMainWindow> #include <QMenu> #include <Q
vc托盤圖示的實現以及托盤右鍵選單的響應
#define UM_SHOW_TORY_ICON WM_USER + 200 + 1 // 用於響應托盤圖示訊息 void addToTray() {HINSTANCE hInst = m_pm.GetInstance();HICON hIcon;hIcon
Js實現——右鍵出現選單,選單中有新建,複製,剪下,貼上,刪除
描述: 單擊右鍵出現選單,選單中有新建,複製,剪下,貼上,刪除 選擇新建時,建立第一個div,寬高50,顏色隨機,並且放在滑鼠點選的位置 點選div,div被選中,加邊線,如果被選中,div可以被拖動,當選擇別的d
AE學習筆記之右鍵選單的新增與實現
ArcGIS Engine 中自定義了一些新增命令、工具和選單的基類,在需要寫相應函式的時候可以直接很方便的新增。 我在前面的文章裡面有一節講述過如何新增控制元件命令:http://blog.csdn.net/my_lord_/article/detail
PyQt 右鍵選單的實現(Qt.CustomContextMenu方式)
從Qt文件Qt::ContextMenuPolicy的值可以看出,實現右鍵選單的方式有三種,這對於所有繼承於QWidget的類都是通用的,在用每一種方式實現之前都要呼叫QWidget::setContextMenuPolicy(Qt::ContextMenuPolicy)方
jxbrowser 實現自定義右鍵選單 jxbrowser破解版請聯絡作者
QQ 921888199 public static void main(String[] args) { JPopupMenu.setDefaultLightWeightPopupEnabled(false); Browser bro
MFC 實現richedit右鍵選單的複製貼上功能
//滑鼠右鍵響應函式 void CMSR009BTDlg::OnContextMenu(CWnd* pWnd, CPoint point) {// TODO: Add your message handler code hereCMenu popMenu;CRect rect1,rect2,rect3;//
JQ實現右鍵點選彈出選單
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> //遮蔽瀏覽器右鍵選單 doc