pyqt5 為QListWidget新增右鍵選單

2022-07-04 14:06:14 字數 877 閱讀 5211

如何在pyqt5下為qlistwidget新增右鍵選單?

在嘗試了很多方法後,下面貼出可用的方法:

from pyqt4 import qtcore, qtgui

首先建立右鍵選單:

#建立右鍵選單

def rightmenushow(self):

rightmenu = qtgui.qmenu(self.listview1)

removeaction = qtgui.qaction(u"刪除", self, triggered=self.close) # triggered 為右鍵選單點選後的啟用事件。這裡slef.close呼叫的是系統自帶的關閉事件。

rightmenu.addaction(removeaction)

addaction = qtgui.qaction(u"新增", self, triggered=self.additem) # 也可以指定自定義物件事件

rightmenu.addaction(addaction)

rightmenu.exec_(qtgui.qcursor.pos())

然後在init的時候進行繫結:

self.list_widget.setcontextmenupolicy(qt.customcontextmenu)

self.list_widget.customcontextmenurequested[qtcore.qpoint].connect(self.rightmenushow)

這樣就可以使用右鍵選單功能了。

不過這裡每種不足的是,滑鼠不管是否在item上還是空白處都會有右鍵選項。還想請教大大們,這裡怎麼處理。

謝謝這兩篇部落格給出的參考:

PyQt5 高階控制項使用(QListWidget)

qlistwidget是乙個用於顯示資料的列表,每個條目中都是乙個qlistwidgetitem物件 qlistwidget可以設定多選 常用方法如下 常用訊號 例如 1 qlistwidget 控制項使用 2from pyqt5.qtwidgets import 3from pyqt5.qtgui...

pyqt5切換python版本 pyqt5介面切換

主要的思路就是建立兩個frame 如果有兩個以上同理 使用setvisible 函式顯示或者隱藏frame 引數是bool值 import sys from pyqt5.qtwidgets import from pyqt5.qtcore import from pyqt5.qtgui import...

pyqt5多執行緒優化 PyQt5多執行緒

您不應該向主檢視傳送乙個新的小部件 qlabel 因為它將是乙個新標籤,而不是原始標籤,您應該傳送str型別的文字class thread qthread changepixmap pyqtsignal qpixmap changelabel pyqtsignal str def run self ...