pyqt5自定义QRadioButton增加鼠标右击功能

自定义:

自定义类中有定义了一个信号,用来传递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两个都可以,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值