📅  最后修改于: 2023-12-03 14:45:49.790000             🧑  作者: Mango
在 PyQt5 中,可以使用 QSpinBox 将整数值作为输入框来选择。如果有多个 QSpinBox,您可以将它们连接起来,使一个旋转框的值更改另一个旋转框的值。本文将介绍如何用 PyQt5 连接两个 QSpinBox 旋转框。
首先,我们需要引入 PyQt5 库。在终端中用以下命令安装 PyQt5 :
pip install pyqt5
在 PyQt5 中创建 QSpinBox 的代码如下所示:
spin_box = QSpinBox()
我们将创建两个 QSpinBox。
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QSpinBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
self.spinbox1 = QSpinBox()
self.spinbox2 = QSpinBox()
vbox.addWidget(self.spinbox1)
vbox.addWidget(self.spinbox2)
self.setLayout(vbox)
self.spinbox1.valueChanged.connect(self.valueChange)
self.spinbox2.valueChanged.connect(self.valueChange)
self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('QSpinBox')
self.show()
def valueChange(self):
sender = self.sender()
if sender == self.spinbox1:
self.spinbox2.setValue(self.spinbox1.value())
else:
self.spinbox1.setValue(self.spinbox2.value())
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在代码中,我们创建了一个 Example 类,该类是 QWidget 的子类。在 initUI() 方法中,我们创建了一个 QVBoxLayout,并使用 addWidget() 方法添加两个 QSpinBox。
在这里,我们使用了 valueChanged 信号,该信号会在旋转框的值发生变化时被调用。我们将信号连接到 valueChange() 方法。
valueChange() 方法会检测哪个 QSpinBox 发送了信号,并设置另一个 QSpinBox 的值为当前 QSpinBox 的值。