PyQt5 - QSpinBox 控制元件



一個QSpinBox物件為使用者提供了一個文字框,該文字框顯示一個整數,其右側帶有向上/向下按鈕。如果按下向上/向下按鈕,文字框中的值會增加/減少。

預設情況下,框中的整數從 0 開始,到 99 結束,步長為 1。對於浮點值,請使用 QDoubleSpinBox。

QSpinBox 類的重要方法列在下表中:

序號 方法及說明
1

setMinimum()

設定計數器的下限

2

setMaximum()

設定計數器的上限

3

setRange()

設定最小值、最大值和步長值

4

setValue()

以程式設計方式設定微調框的值

5

value()

返回當前值

6

singleStep()

設定計數器的步長值

每次按下向上/向下按鈕時,QSpinBox 物件都會發出valueChanged()訊號。關聯的槽函式可以透過value()方法檢索小部件的當前值。

下面的示例在一個頂層視窗的垂直佈局中放置了一個標籤 (l1) 和一個微調框 (sp)。valueChanged() 訊號連線到 valuechange() 方法。

self.sp.valueChanged.connect(self.valuechange)

valueChange() 函式將當前值顯示為標籤的標題。

self.l1.setText("current value:"+str(self.sp.value()))

完整的程式碼如下:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class spindemo(QWidget):
   def __init__(self, parent = None):
      super(spindemo, self).__init__(parent)
      
      layout = QVBoxLayout()
      self.l1 = QLabel("current value:")
      self.l1.setAlignment(Qt.AlignCenter)
      layout.addWidget(self.l1)
      self.sp = QSpinBox()
		
      layout.addWidget(self.sp)
      self.sp.valueChanged.connect(self.valuechange)
      self.setLayout(layout)
      self.setWindowTitle("SpinBox demo")
		
   def valuechange(self):
      self.l1.setText("current value:"+str(self.sp.value()))

def main():
   app = QApplication(sys.argv)
   ex = spindemo()
   ex.show()
   sys.exit(app.exec_())
	
if __name__ == '__main__':
   main()

以上程式碼產生以下輸出:

QSpinBox Widget Output
pyqt_basic_widgets.htm
廣告
© . All rights reserved.