pyqt5如何制作一个复选框将两个Qsliders锁定在一起

pyqt5 how to make a checkbox lock two Qsliders together

我在 python here

中使用 Qt Designer 运行 制作了一个 GUI

我如何将代码添加到我的项目以添加一个复选框,该复选框将我的两个 Qsliders 锁定在一起(无论它们是什么,它们的值都一起改变。0 - 100 范围)。见下图。

如果需要更多信息,请随时询问。

选中该复选框时,您可以将每个滑块的 valueChanged 信号连接到另一个滑块的 setValue 插槽,未选中时断开连接。

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class Template(QWidget):

    def __init__(self):
        super().__init__()
        vbox = QVBoxLayout(self)
        vbox.addWidget(QSlider(Qt.Horizontal))
        vbox.addWidget(QCheckBox('Lock', toggled=self.toggleLocked))
        vbox.addWidget(QSlider(Qt.Horizontal))

    def toggleLocked(self, state):
        s1, s2 = self.findChildren(QSlider)
        if state:
            s2.setValue(s1.value())
            s1.valueChanged[int].connect(s2.setValue)
            s2.valueChanged[int].connect(s1.setValue)
        else:
            s1.valueChanged[int].disconnect()
            s2.valueChanged[int].disconnect()        
        

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Template()
    window.show()
    sys.exit(app.exec_())