1. 程式人生 > >pyqt5的QListWidget中設置右鍵菜單

pyqt5的QListWidget中設置右鍵菜單

python pyqt5 qlistwidget 右鍵菜單 刪除

兩種思路:
一. 重寫event事件方法。
容易出現沖突事件...
二. 利用Widget的添加菜單方式
listWidget.setContextMenuPolicy(3) 設置菜單
listWidget.customContextMenuRequested[QtCore.QPoint].connect() 綁定方法
此時的右鍵菜單是整個列表任意地方都會彈出。
傳遞的信號參數是鼠標點擊的位置 QPoint。

綁定的函數往往需要其他參數,有兩種方式:
1> 匿名函數
connect(lambda: function(args1,args2))

2> 通過functools工具中的partial 函數

connect(partial(function,arg1,arg2))

推薦第二種,因為會附帶默認參數一起傳遞。
*
——
——
通過上面的Qpoint 獲取列表中的 選定的選項 item :
item = listWidget.itemAt(x,y) ,根據point的坐標
移除 列表選項中的item :
listwidget.removeItemWidget(listwidget.takeItem(listwidget.row(item)))

pyqt5的QListWidget中設置右鍵菜單