PyQt5 QSpinBox – 访问单步大小

  • Post category:Python

PyQt5是Python语言实现的GUI开发库,提供了大量的渲染控件、布局方式和事件处理机制,非常适用于快速搭建图形界面应用程序。其中QSpinBox控件是用来输入和展示整数值的部件,通过setSingleStep()方法可以设置控件的单步大小。

下面是具体的使用攻略:

1.引入模块

在使用QSpinBox之前,需要先引入PyQt5模块。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QSpinBox, QLabel

2.创建主窗口

在创建主界面之前,需要先创建一个QSpinBox控件,并通过setSingleStep()方法设置控件的单步大小。

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.resize(300, 200)
        self.setWindowTitle('QSpinBox Demo')
        self.spinBox = QSpinBox(self)
        self.spinBox.setSingleStep(10)
        self.spinBox.move(50, 50)
        label = QLabel('Single Step: {}'.format(self.spinBox.singleStep()), self)
        label.move(50, 100)
        self.show()

在主界面中,使用setSingleStep()方法设置了spinBox控件的单步大小为10,并在窗口中显示了当前spinBox控件的单步大小。

3.运行程序

在主程序中,需要将MainWindow实例添加到QApplication中,并通过exec_()方法运行程序。

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    sys.exit(app.exec_())

示例1

下面是一个完整的使用示例,演示了如何使用QSpinBox控件进行整数值的输入。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QSpinBox, QPushButton, QLabel


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.resize(300, 200)
        self.setWindowTitle('QSpinBox Demo')
        self.spinBox = QSpinBox(self)
        self.spinBox.setRange(0, 100)
        self.spinBox.setSingleStep(10)
        self.spinBox.move(50, 50)
        label = QLabel('Single Step: {}'.format(self.spinBox.singleStep()), self)
        label.move(50, 100)
        self.button = QPushButton('Get Value', self)
        self.button.move(150, 50)
        self.button.clicked.connect(self.getValue)
        self.show()

    def getValue(self):
        print(self.spinBox.value())

在这个示例中,使用了setRange()方法设置了spinBox控件的最小值为0,最大值为100;使用clicked信号连接了button按钮和getValue()方法,通过value()方法获取当前spinBox控件输入的整数值。

示例2

下面是另一个完整的使用示例,演示了如何使用QSpinBox控件进行整数值的输入和展示。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QSpinBox, QLabel


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.resize(300, 200)
        self.setWindowTitle('QSpinBox Demo')
        self.spinBox = QSpinBox(self)
        self.spinBox.setRange(0, 100)
        self.spinBox.setSingleStep(10)
        self.spinBox.move(50, 50)
        self.spinBox.valueChanged.connect(self.showValue)
        self.label = QLabel('SpinBox Value: {}'.format(self.spinBox.value()), self)
        self.label.move(50, 100)
        self.show()

    def showValue(self):
        self.label.setText('SpinBox Value: {}'.format(self.spinBox.value()))

在这个示例中,使用了valueChanged信号连接了spinBox控件和showValue()方法,根据spinBox控件输入的整数值,通过setText()方法显示在label标签中。