PyQt5是一个流行的Python GUI框架,其中的QSpinBox组件是一个用于输入数字的控件。在使用中,我们可能需要设置QSpinBox控件的范围,以便用户只能输入预设范围内的数字。以下是该控件的完整使用攻略。
设置QSpinBox的范围
要设置QSpinBox的范围,需要使用setRange()
函数。该函数需要两个参数,分别表示范围的最小值和最大值。
spin_box = QSpinBox()
spin_box.setRange(0, 100)
在上述例子中,我们创建一个QSpinBox对象spin_box
,并将其范围设置为0到100之间的任意整数。
设置单步大小
单步指的是通过单击控件上下箭头按钮增加或减少数字时的增量。要设置单步大小,需要使用setSingleStep()
函数。该函数需要一个参数,表示每次增加或减少的大小。
spin_box = QSpinBox()
spin_box.setRange(0, 100)
spin_box.setSingleStep(5)
在上述例子中,我们将spin_box
的单步大小设置为5,意味着每次单击上下箭头按钮时,spin_box
的数值会增加或减少5。
示例说明
以下是两个示例,分别演示了设置范围和单步大小。
示例1
该示例创建一个窗口,包含一个QSpinBox控件和一个PushButton按钮。单击按钮会弹出一个消息框,显示当前QSpinBox的值。在该示例中,我们将QSpinBox的范围设置为0到50,单步大小设置为10。
from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QPushButton, QMessageBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
spin_box = QSpinBox(self)
spin_box.setGeometry(30, 30, 80, 30)
spin_box.setRange(0, 50)
spin_box.setSingleStep(10)
btn = QPushButton('Get Value', self)
btn.move(30, 80)
btn.clicked.connect(self.showValue)
self.setGeometry(300, 300, 200, 150)
self.setWindowTitle('QSpinBox Example')
self.show()
def showValue(self):
spin_box = self.findChild(QSpinBox)
value = spin_box.value()
QMessageBox.information(self, 'Value', 'Current value: {}'.format(value))
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
示例2
该示例创建一个窗口,包含三个QSpinBox控件和一个PushButton按钮。单击按钮会弹出一个消息框,显示三个QSpinBox的当前值的乘积。在该示例中,我们将三个QSpinBox的范围设置为-100到100,单步大小设置为1。
from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QPushButton, QMessageBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
spin_box1 = QSpinBox(self)
spin_box1.setGeometry(30, 30, 80, 30)
spin_box1.setRange(-100, 100)
spin_box1.setSingleStep(1)
spin_box2 = QSpinBox(self)
spin_box2.setGeometry(130, 30, 80, 30)
spin_box2.setRange(-100, 100)
spin_box2.setSingleStep(1)
spin_box3 = QSpinBox(self)
spin_box3.setGeometry(230, 30, 80, 30)
spin_box3.setRange(-100, 100)
spin_box3.setSingleStep(1)
btn = QPushButton('Get Product', self)
btn.move(30, 80)
btn.clicked.connect(self.showProduct)
self.setGeometry(300, 300, 340, 150)
self.setWindowTitle('QSpinBox Example')
self.show()
def showProduct(self):
spin_box1 = self.findChild(QSpinBox, 'spin_box1')
spin_box2 = self.findChild(QSpinBox, 'spin_box2')
spin_box3 = self.findChild(QSpinBox, 'spin_box3')
value1 = spin_box1.value()
value2 = spin_box2.value()
value3 = spin_box3.value()
product = value1 * value2 * value3
QMessageBox.information(self, 'Product', 'Current product: {}'.format(product))
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
这两个示例分别演示了设置范围和单步大小两种操作,供开发者参考。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 QSpinBox – 设置范围 - Python技术站