PyQt4:有没有与滚动条相关的信号?

Hyu*_*Kim 1 scroll pyqt qlistwidget pyqt4

我计划创建一个两个listWidget,它们具有相同数量的列表.因此,当listWidget向上和向下滚动时,另一个也会移动它的列表.但是,我找不到相关的信号.我错过了什么?

ekh*_*oro 7

您需要将valueChanged一个滚动条的信号连接到另一个滚动条的setValue插槽(反之亦然).

乍一看,这似乎是危险的递归,但Qt似乎没有任何问题处理它,因为这个例子显示:

from PyQt4 import QtGui, QtCore

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.listA = QtGui.QListWidget(self)
        self.listB = QtGui.QListWidget(self)
        layout = QtGui.QHBoxLayout(self)
        layout.addWidget(self.listA)
        layout.addWidget(self.listB)
        for index in range(100):
            self.listA.addItem('Sample text for Item %d' % index)
            self.listB.addItem('Sample text for Item %d' % index)
        self.listA.horizontalScrollBar().valueChanged.connect(
            self.listB.horizontalScrollBar().setValue)
        self.listB.horizontalScrollBar().valueChanged.connect(
            self.listA.horizontalScrollBar().setValue)
        self.listA.verticalScrollBar().valueChanged.connect(
            self.listB.verticalScrollBar().setValue)
        self.listB.verticalScrollBar().valueChanged.connect(
            self.listA.verticalScrollBar().setValue)

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)