开发者社区> 问答> 正文

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

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(我的槽函数)


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

展开
收起
kun坤 2020-06-14 17:01:06 987 0
1 条回答
写回答
取消 提交回答
  • 因为点击事件被按钮接收了 QListWidget 监听不到 点击,可以连接按钮的点击信号来处理

    2020-06-14 17:01:12
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载