- 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()
輸出
以上程式碼產生以下輸出:
廣告