在qtablewidget中寻找信号

时间:2014-03-18 12:54:50

标签: python scroll pyqt signals qtablewidget

QTableWidget中滚动时是否有“滚动释放”信号?

这个想法是,为了显示巨大的表,让用户上下滚动,当滚动停止时,在窗口中显示可见的行。

窗口中可见的第一行很容易捕获。

我只需要知道如何在滚动停止时捕获事件。

1 个答案:

答案 0 :(得分:2)

你可以捕捉鼠标按钮释放,但是如果你用鼠标滚轮滚动你的桌子就没有"滚动释放"因为你做的每一个动作都会发出信号。 我建议过滤鼠标滚轮并使用户只能在滚动条上使用鼠标左键。 有关重新实施eventFilter的更多信息,您可以找到here,但由于您在此处使用Python是我使用自定义eventFilter的示例(为我的{{1}重新实现})阻止组合框上的滚轮并在表格上单击鼠标:

QMainWindow

这是如何设置过滤器:

def eventFilter(self,target,event):
    if target == self.__ui.comboBox:
        if(event.type()== QtCore.QEvent.Wheel):#block wheel on combobox
            return True
    elif target == self.__ui.tableWidget.viewport():
        if(event.type()== QtCore.QEvent.MouseButtonDblClick):#block MouseButtonDblClick in table
            return True
        if(event.type()== QtCore.QEvent.MouseButtonRelease):#block MouseButtonRelease in table
            return True
    return False