pyqt,自己写了个类,继承自QTableWidget,然后发现鼠标滚轮失效了。。。

发布于 2022-09-04 11:27:06 字数 482 浏览 14 评论 0

#table.py
class scrollTable(QtGui.QTableWidget):  
    def __init__(self, parent=None):  
        super(scrollTable, self).__init__(parent)     
        
        self.x=0
#        
          
    def wheelEvent(self,event):
        self.x =self.x + event.delta()/120
        print self.x
        print event.delta()
#    

self.tableWidget = table.scrollTable(Dialog)
新建一个表格
然后发现tableWidget无法鼠标滚轮了,但是print缺能够打印出来,但屏幕上就是不滚动。。。鼠标去拖拉那个东西,屏幕可以滚动

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

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

发布评论

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

评论(2

来日方长 2022-09-11 11:27:07
class TableWidget(QTableWidget):
    def wheelEvent(self, event):
        scrollBar = self.verticalScrollBar()
        scrollBar.setValue(scrollBar.value() - event.delta() / 120)
离去的眼神 2022-09-11 11:27:07

因为父类的wheelEvent函数被覆盖了,没有被执行,所以所有的滚轮事件都不响应了。
虽然用scrollBar.setValue方法可以让滚轮恢复,但是最好的解决方法是用super方法来调用父类的wheelEvent函数,这样肯定是最原汁原味的还原其行为,而且不会漏掉滚动以外的其他事件。

def wheelEvent(self,event):
    # 调用super方法
    super(scrollTable, self).wheelEvent(event)
    # 然后自己的处理
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文