📅  最后修改于: 2023-12-03 15:33:53.998000             🧑  作者: Mango
在 PyQt5 中,QSpinBox 用于选择数字。当我们需要使用 QSpinBox 时,可能需要将其限定在特定范围内或在超出范围后循环回来。在本教程中,我们将学习如何在 PyQt5 的 QSpinBox 中添加循环。
以下示例演示如何创建一个 QSpinBox,该 QSpinBox 从 1 到 10 循环,即当值为 10 时下一个值将是 1。
from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QVBoxLayout
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.spinBox = QSpinBox(self)
self.spinBox.setRange(1, 10)
self.spinBox.setWrapping(True)
vbox = QVBoxLayout()
vbox.addWidget(self.spinBox)
self.setLayout(vbox)
self.setWindowTitle('PyQt5 QSpinBox - 添加循环')
self.setGeometry(300, 300, 250, 150)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在上面的示例中,我们使用了 QSpinBox 的 setWrapping() 方法,该方法允许到达范围的末尾后继续循环。
以下是上面示例的代码解释:
self.spinBox = QSpinBox(self)
self.spinBox.setRange(1, 10)
self.spinBox.setWrapping(True)
我们定义了一个 QSpinBox 并对其进行设置,其中:
vbox = QVBoxLayout()
vbox.addWidget(self.spinBox)
self.setLayout(vbox)
以上代码段用于创建一个 QVBoxLayout,将 QSpinBox 添加到 QVBoxLayout 中,然后将 QVBoxLayout 设置为 Example 窗口的布局。
完整的代码片段如下所示: