在两个不同的qlistwidgets中同步滚动?

2024-10-01 07:16:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个不同的QListwidgets,滚动条与下面的代码正确同步。问题是第二个Qlistwidget(紧跟在另一个之后的那个)´(滚动)没有´除非我用鼠标悬停在它上面,否则不能更新它的项目

我对pyqt的使用经验很少,所以我唯一尝试的就是使用repaint和update方法(我在代码中,在函数末尾添加了这两种方法)。不幸的是什么都没发生

    def move_scrollbar(vs, value):
        vs.blockSignals(True)
        vs.setValue(value)
        vs.blockSignals(False)
        self.list1.repaint()
        self.list2.repaint()
        self.list1.update()
        self.list2.update()

    vs1 = self.list1.verticalScrollBar()
    vs2 = self.list2.verticalScrollBar()

    vs1.valueChanged.connect(partial(move_scrollbar, vs2))
    vs2.valueChanged.connect(partial(move_scrollbar, vs1))

我希望次要或链接的QListwidget的视图以与主要(我实际滚动的)相同的方式更新


Tags: 方法代码selfmovevalueupdatevslist2
1条回答
网友
1楼 · 发布于 2024-10-01 07:16:28

这对我很有用:

    self.vs1 = self.list1.verticalScrollBar()
    self.vs2 = self.list2.verticalScrollBar()

    self.vs1.valueChanged.connect(self.move_scrollbar)
    self.vs2.valueChanged.connect(self.move_scrollbar)

def move_scrollbar(self, value):
    self.vs1.setValue(value)
    self.vs2.setValue(value)

相关问题 更多 >