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)))

猜你喜欢

转载自blog.51cto.com/11732546/2104915
今日推荐