📜  PyQt5 QSpinBox – 将两个旋转框相互连接(1)

📅  最后修改于: 2023-12-03 14:45:49.790000             🧑  作者: Mango

PyQt5 QSpinBox – 将两个旋转框相互连接

在 PyQt5 中,可以使用 QSpinBox 将整数值作为输入框来选择。如果有多个 QSpinBox,您可以将它们连接起来,使一个旋转框的值更改另一个旋转框的值。本文将介绍如何用 PyQt5 连接两个 QSpinBox 旋转框。

引入 PyQt5

首先,我们需要引入 PyQt5 库。在终端中用以下命令安装 PyQt5 :

pip install pyqt5
创建两个 QSpinBox

在 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 的值。