求教,怎么实现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(我的槽函数)
结果,鼠标右键点了无效了,哈哈哈哈,但是,鼠标左键点了也没用了,因为不能选中,一脸懵逼
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为点击事件被按钮接收了 QListWidget 监听不到 点击,可以连接按钮的点击信号来处理