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

本文介绍了如何在 PyQt5 中创建一个自定义的 RadioButton 类,通过定义信号并绑定右键菜单,实现在选中按钮时触发相应的操作,如删除或修改。展示了如何使用 pyqtSignal 和 QtCustomContextMenu 来增强控件交互性。
摘要由CSDN通过智能技术生成

自定义:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值