求教,怎么实现QListWidget的item设置成只识别鼠标左键点击

发布于 2022-01-01 23:08:59 字数 1033 浏览 851 评论 1

listwidget的itemClicked信号鼠标左右键都能发送,现在我想实现只有在点击鼠标左键的时候才连接槽函数。

我个人是自定义了一个继承QListWidget的类,在类中重写了mousePressEvent函数,在函数中判断如果是鼠标左键,就进行emit()。这么做出现了一个问题,就是我在父窗口中实例化这个自定义类后,鼠标左键点击item后item没有选中状态,导致很多后续操作都没效果。

请教下各位大神我应该怎么改?或者,有没有更好的办法实现我的意图?麻烦不吝赐教

贴下我的代码

class MySignal(QObject):

       signal = pyqtSignal()

class MyListWidget(QListWidget):    

    def __init__(self,parent = None):

        super(MyListWidget,self).__init__(parent)

        self.ClickSignal = MySignal()

        

    def mousePressEvent(self,event):

        if event.button() == Qt.LeftButton:

            self.ClickSignal.signal.emit()

然后在父窗口的类中这样做:

self.listwidget = MyListWidget()

self.listwidget.ClickSignal.signal.connect(我的槽函数)

结果,鼠标右键点了无效了,哈哈哈哈,但是,鼠标左键点了也没用了,因为不能选中,一脸懵逼

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冬天旳寂寞 2022-01-03 23:24:53

因为点击事件被按钮接收了 QListWidget 监听不到 点击,可以连接按钮的点击信号来处理

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文