自定义:
自定义类中有定义了一个信号,用来传递radio button文本信息,在主程序中进行信号的好像即可,在绑定方法中写自己的逻辑。
from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtWidgets import QRadioButton, QMenu
from PyQt5.QtGui import QCursor, QIcon
class MyRadioBtn(QRadioButton):
radioSignal = pyqtSignal(tuple) # 删除操作,修改操作
def __init__(self, *args, **kwargs):
super(MyRadioBtn, self).__init__(*args, **kwargs)
self.setContextMenuPolicy(Qt.CustomContextMenu) # 打开右键菜单策略
self.customContextMenuRequested.connect(self.show_rightMenu) # 连接到菜单显示函数
def show_rightMenu(self):
# 菜单对象
menu = QMenu(self)
action_delete = menu.addAction(QIcon('src/icons/delete.png'), u'delete')
action_delete.triggered.connect(lambda: self.radioSignal.emit((self.text(), 1)))
action_modify = menu.addAction(QIcon('src/icons/edit.png'), u'modify')
action_modify.triggered.connect(lambda: self.radioSignal.emit((self.text(), 0)))
menu.exec_(QCursor.pos()) #声明当鼠标在groupBox控件上右击时,在鼠标位置显示右键菜单 ,exec_,popup两个都可以,