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_())
我在 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_())