iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
Software Development

實戰 Python x PyQt5 軟體介面設計系列 第 13

( Day 13 ) QSpinBox、QDoubleSpinBox 數值調整元件

  • 分享至 

  • xImage
  •  

QSpinBox 和 QDoubleSpinBox 都是 PyQt5 裡的數值調整元件,QSpinBox 只能調整整數,QDoubleSpinBox 可以調整浮點數,這篇教學會介紹如何在 PyQt5 視窗裡加入 QSpinBox 數值調整元件,並實做透過數值調整元件調整數值的基本應用。

原文參考:QSpinBox、QDoubleSpinBox 數值調整元件

因為 Google Colab 不支援 PyQt5,所以請使用本機環境 ( 參考:使用 Python 虛擬環境 ) 或使用 Anaconda Jupyter 進行實作 ( 參考:使用 Anaconda )。

QSpinBox、QDoubleSpinBox 數值調整元件

加入 QSpinBox、QDoubleSpinBox 數值調整元件

建立 PyQt5 視窗物件後,透過 QtWidgets.QSpinBox(widget)QtWidgets.QDoubleSpinBox(widget) 方法,就能在指定的元件中建立數值調整元件,接著使用 setRange() 方法設定數值調整範圍,下方的程式碼執行後,會在視窗裡加入一個整數調整元件,以及一個浮點數調整元件。

from PyQt5 import QtWidgets, QtGui, QtCore
import sys
app = QtWidgets.QApplication(sys.argv)

Form = QtWidgets.QWidget()
Form.setWindowTitle('oxxo.studio')
Form.resize(300, 200)

box1 = QtWidgets.QSpinBox(Form)        # 加入整數調整元件
box1.move(30,10)
box1.setRange(0,100)

box2 = QtWidgets.QDoubleSpinBox(Form)  # 加入浮點數調整元件
box2.move(100,10)
box2.setRange(0,100)

Form.show()
sys.exit(app.exec_())

Python 教學 - QSpinBox、QDoubleSpinBox 數值調整元件

數值調整元件常用方法

下方列出 QSpinBox、QDoubleSpinBox 的常用方法:

方法 參數 說明
setRange() min, max 數值調整的範圍。
setMaximum() int or float 數值調整的最大值。
setMinimum() int or float 數值調整的最小值。
setSingleStep() int or float 數值調整的間距。
setValue() int or float 數值調整的預設值。
setDisabled() bool 設定是否禁用,預設 False。
valueChanged.connect() fn 數值調整時要執行的函式。
value() 數值調整目前的數值。

下方的程式碼執行後,會在畫面中放入兩個數值調整元件,QSpinBox 的區間為 0~100,預設值 50,調整間距為 10,QDoubleSpinBox 的區間為 0~100,預設值 50,調整間距為 0.2。

from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)

Form = QtWidgets.QWidget()
Form.setWindowTitle('oxxo.studio')
Form.resize(300, 200)

box1 = QtWidgets.QSpinBox(Form)
box1.move(30,10)
box1.setRange(0,100)
box1.setSingleStep(1)
box1.setValue(50)

box2 = QtWidgets.QDoubleSpinBox(Form)
box2.move(100,10)
box2.setRange(0,100)
box2.setSingleStep(0.2)
box2.setValue(50)

Form.show()
sys.exit(app.exec_())

Python 教學 - QSpinBox、QDoubleSpinBox 數值調整元件

顯示數值調整內容

運用 valueChanged.connect(fn) 方法,就能在調整數值時,執行特定的函式,下方的程式碼執行後,會透過 QLabel 顯示調整的項目數值。

from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)

Form = QtWidgets.QWidget()
Form.setWindowTitle('oxxo.studio')
Form.resize(300, 200)

label = QtWidgets.QLabel(Form)
label.setGeometry(10,10,50,30)

def show():
    label.setText(str(box1.value()))

box1 = QtWidgets.QSpinBox(Form)
box1.move(80,10)
box1.setRange(0,100)
box1.setSingleStep(1)
box1.setValue(50)
box1.valueChanged.connect(show)

Form.show()
sys.exit(app.exec_())

Python 教學 - QSpinBox、QDoubleSpinBox 數值調整元件

更多 Python 教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我已經寫了超過 400 篇 Python 的教學,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 12 ) QComboBox 下拉選單
下一篇
( Day 14 ) QTimeEdit 時間調整元件
系列文
實戰 Python x PyQt5 軟體介面設計35
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言