- PyQt 教程
- PyQt - 首页
- PyQt - 简介
- PyQt - 环境搭建
- PyQt - Hello World
- PyQt - 主要类
- PyQt - 使用 Qt Designer
- PyQt - 元对象
- PyQt 信号与槽
- PyQt - 信号和槽
- PyQt - 支持和信号
- PyQt - 未绑定和已绑定信号
- PyQt - 使用 PyQtSignal 创建新的信号
- PyQt - 连接、断开和发射信号
- PyQt - 槽装饰器
- PyQt - 槽连接
- PyQt 布局
- PyQt - 布局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基本控件
- PyQt - 基本控件
- PyQt - QLabel 控件
- PyQt - QLineEdit 控件
- PyQt - QPushButton 控件
- PyQt - QRadioButton 控件
- PyQt - QCheckBox 控件
- PyQt - QComboBox 控件
- PyQt - QSpinBox 控件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控件
- PyQt - QFontComboBox 控件
- PyQt - QDoubleSpinBox 控件
- PyQt - QToolBox 控件
- PyQt - QDialog 类
- PyQt - QMessageBox
- PyQt - 多文档界面
- PyQt - 拖放
- PyQt 绘图 API
- PyQt - 绘图 API
- PyQt 数据库
- PyQt - 数据库操作
- PyQt 核心知识
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 类
- PyQt 有用资源
- PyQt - 快速指南
- PyQt - 有用资源
- PyQt - 讨论
PyQt - QSpinBox 控件
QSpinBox 对象向用户呈现一个文本框,其中显示一个整数,其右侧带有向上/向下按钮。如果按下向上/向下按钮,则文本框中的值会增加/减少。
默认情况下,框中的整数从 0 开始,到 99 结束,步长为 1。对于浮点值,请使用 QDoubleSpinBox。
QSpinBox 控件中使用的方法
QSpinBox 类的重要方法列在下表中:
序号 | 方法及描述 |
---|---|
1 |
setMinimum() 设置计数器的下限 |
2 |
setMaximum() 设置计数器的上限 |
3 |
setRange() 设置最小值、最大值和步长值 |
4 |
setValue() 以编程方式设置微调框的值 |
5 |
value() 返回当前值 |
6 |
singleStep() 设置计数器的步长值 |
每次按下向上/向下按钮时,QSpinBox 对象都会发出 valueChanged() 信号。关联的槽函数可以通过 value() 方法检索窗口小部件的当前值。
QSpinBox 的基本结构
在进入示例之前,让我们了解一下 QSpinBox 控件的基本结构。
在此代码片段中,我们创建一个具有 QSpinBox 控件的 PyQt 窗口。接下来,我们使用 setMinimum() 和 setMaximum() 函数定义微调框的上限。此外,我们使用 setValue() 初始化微调框的起始值。
from PyQt6.QtWidgets import QApplication, QMainWindow, QSpinBox class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Basic QSpinBox Example") self.setGeometry(200, 200, 300, 200) spinbox = QSpinBox(self) spinbox.move(100, 50) spinbox.setMinimum(0) spinbox.setMaximum(100) spinbox.setValue(50) if __name__ == "__main__": app = QApplication([]) window = MyWindow() window.show() app.exec()
输出
以上代码产生以下输出:
示例 1:自定义 QSpinBox
在下面的示例中,我们展示了 QSpinBox 控件的自定义选项。我们将最小值和最大值分别设置为 -100 和 100。此外,我们使用 setSingleStep() 调整递增或递减值的步长。
from PyQt6.QtWidgets import QApplication, QMainWindow, QSpinBox class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Customized QSpinBox Example") self.setGeometry(200, 200, 300, 200) spinbox = QSpinBox(self) spinbox.move(100, 50) spinbox.setMinimum(-100) spinbox.setMaximum(100) spinbox.setSingleStep(5) spinbox.setValue(0) if __name__ == "__main__": app = QApplication([]) window = MyWindow() window.show() app.exec()
输出
以上代码产生以下输出:
示例 2:QSpinBox 信号处理
在这个例子中,我们将 QSpinBox 控件的 valueChanged 信号连接到自定义槽 on_value_changed。每当微调框中的值发生变化时,此槽都会使用 QLabel 更新当前选定的值。
from PyQt6.QtWidgets import QApplication, QMainWindow, QSpinBox, QLabel class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("QSpinBox Signal Handling Example") self.setGeometry(200, 200, 300, 200) spinbox = QSpinBox(self) spinbox.move(100, 50) spinbox.setMinimum(0) spinbox.setMaximum(100) spinbox.valueChanged.connect(self.on_value_changed) self.label = QLabel(self) self.label.move(100, 100) self.label.setText("Selected Value: 0") def on_value_changed(self, value): self.label.setText(f"Selected Value: {value}") if __name__ == "__main__": app = QApplication([]) window = MyWindow() window.show() app.exec()
输出
以上代码产生以下输出:
广告