- 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 - QDoubleSpinBox 元件
PyQt 中的 QDoubleSpinBox 元件用於輸入指定範圍內的浮點數。它繼承自 QAbstractSpinBox,後者又繼承自 Qwidgets。它支援各種功能,包括鍵盤和滑鼠互動、驗證和舍入行為。
QDoubleSpinBox 的主要特性
- 精度控制 − 開發者可以指定要顯示的小數位數。這提供了對浮點數精度的控制。
- 範圍指定 − 可以設定允許的最小值和最大值,定義使用者輸入的理想範圍。
- 鍵盤和滑鼠互動 − 使用者可以使用鍵盤箭頭鍵或滑鼠滾輪與 QDoubleSpinBox 互動,以增加或減少值。
- 訊號和槽 − PyQt6 提供了一個訊號 (valueChanged),可以將其連線到一個槽,以便在值更改時執行操作。
- 本地化數字顯示 − QDoubleSpinBox 使用區域設定,確保根據使用者的區域設定顯示小數分隔符和分組字元。
設定最大值
要設定 QDoubleSpinBox 中的最大值,可以使用 setMaximum() 方法。此方法接受單個引數 – 您希望允許使用者輸入的最大值。透過設定最大值,您可以限制使用者輸入或選擇超過指定限制的值。
語法
語法如下:
your_double_spin_box.setMaximum(max_value)
這裡,your_double_spin_box 應替換為您實際的 QDoubleSpinBox 物件名稱,而 max_value 應為所需的最大值。
示例 1:QDoubleSpinBox 的基本實現
在下面的示例中,我們建立了 PyQt6 應用程式的基本實現,其中包含 QDoubleSpinBox 元件和 QLabel。QDoubleSpinBox 允許使用者在 0 到 100 範圍內選擇浮點數值,並且所選值將顯示在 QLabel 中。
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QDoubleSpinBox, QLabel, QVBoxLayout, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
central_widget = QWidget(self)
self.setCentralWidget(central_widget)
layout = QVBoxLayout()
self.double_spin_box = QDoubleSpinBox(self)
self.double_spin_box.setMinimum(0)
self.double_spin_box.setMaximum(100) # Setting the maximum value to 100
self.label = QLabel(self)
self.label.setText("Selected value: ")
layout.addWidget(self.double_spin_box)
layout.addWidget(self.label)
central_widget.setLayout(layout)
self.double_spin_box.valueChanged.connect(self.update_label)
def update_label(self, value):
self.label.setText(f"Selected value: {value}")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
輸出
以上程式碼產生以下結果:
示例 2:自定義最大值
在下面的示例中,QDoubleSpinBox 的最大值自定義為 50,允許使用者在 -50 到 50 範圍內選擇值。與示例 1 類似,所選值顯示在 QLabel 中。
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QDoubleSpinBox, QLabel, QVBoxLayout, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
central_widget = QWidget(self)
self.setCentralWidget(central_widget)
layout = QVBoxLayout()
self.double_spin_box = QDoubleSpinBox(self)
self.double_spin_box.setMinimum(-50)
self.double_spin_box.setMaximum(50) # Setting the maximum value to 50
self.label = QLabel(self)
self.label.setText("Selected value: ")
layout.addWidget(self.double_spin_box)
layout.addWidget(self.label)
central_widget.setLayout(layout)
self.double_spin_box.valueChanged.connect(self.update_label)
def update_label(self, value):
self.label.setText(f"Selected value: {value}")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
輸出
執行以上程式碼後,我們將得到以下結果:
示例 3:處理大範圍
在下面的示例中,我們展示了 QDoubleSpinBox 透過將最大值設定為 1000 來處理更大範圍的能力。使用者可以在 0 到 1000 範圍內選擇值,並且所選值會在 QLabel 中即時更新。
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QDoubleSpinBox, QLabel, QVBoxLayout, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
central_widget = QWidget(self)
self.setCentralWidget(central_widget)
layout = QVBoxLayout()
self.double_spin_box = QDoubleSpinBox(self)
self.double_spin_box.setMinimum(0)
self.double_spin_box.setMaximum(1000) # Setting the maximum value to 1000
self.label = QLabel(self)
self.label.setText("Selected value: ")
layout.addWidget(self.double_spin_box)
layout.addWidget(self.label)
central_widget.setLayout(layout)
self.double_spin_box.valueChanged.connect(self.update_label)
def update_label(self, value):
self.label.setText(f"Selected value: {value}")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
輸出
執行以上程式碼後,我們將得到以下結果:
廣告