找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2499|回复: 0

[求助] python、PyQt如何实现左击一下ComboBox触发相应事件

3

主题

3

帖子

3

积分

贫民

积分
3
板栗壳 发表于 2018-6-26 16:27:17 | 显示全部楼层 |阅读模式
本帖最后由 板栗壳 于 2018-6-26 16:29 编辑

最近想实现一个功能:就是左击ComboBox触发一个事件
我的代码是这么写的:
class SerialClass(QtWidgets.QMainWindow, Ui_serialMainWindow):
    def __init__(self, parent=None):
        super(SerialClass, self).__init__(parent)
        self.setupUi(self)

# 鼠标按下事件
def mousePressEvent(self, *args, **kwargs):
    print(args,kwargs)
1、鼠标单击事件是在鼠标单击QtWidgets的时候触发这个事件,单击窗体的时候的确调用这个鼠标点击事件了
2、单击Ui_serialMainWindow里面的ComboBox并不会触发这个事件。

百度一些是这么说的:那么因为继承的关系:所以我又继承了QtWidgets.QComboBox
实际测试也是无效呢?
--当然因为我还不明白这个原理。
那么我就觉得这个重载的mousePressEvent事件在这个类里面只对这个窗体有效了,对窗体里面的组件是无效的。

2、方式二:
我从写了一个类,类继承于QtWidgets.QComboBox
然后我传递一个参数进去,就是这个QComboBox,然后重载一个鼠标点击事件。
当然也是没有用的。
class SerialComponent(QtWidgets.QComboBox):
    def __init__(self, parent=None,btn=''):
        super(SerialComponent, self).__init__(parent)
        # self.setupUi(self)
        self.btn = btn
        self.initUI()

    # 鼠标按下事件
    def mousePressEvent(self, *args, **kwargs):
        print(args,kwargs)

    def initUI(self):
        global g_serHelpList
        for i in g_serHelpList:
            self.btn.addItem(i)
        self.btn.addItem('hafdh')
那么问题就来了。
问:如何使得我按下这个ComboBox也能触发相对应的事件呢?
望解答。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表