QSpinBox 是一個(gè)計(jì)數(shù)器控件,允許用戶選擇一個(gè)整數(shù)值,通過單擊向上/向下按鈕或按鍵盤上的上/下箭頭來增加/減少當(dāng)前顯示的值,當(dāng)然用戶也可以輸入值。在默認(rèn)情況下,QSpinBox 的取值范圍是 0~99,每次改變的步長值為 1。
QSpinBox 類和 QDoubleSpinBox 類均派生自 QAbstractSpinBox 類。QSpinBox 用于處理整數(shù)值,QDoubleSpinBox 則用于處理浮點(diǎn)值,它們之間的區(qū)別就是處理數(shù)據(jù)的類型不同,其他功能都基本相同。QDoubleSpinBox 的默認(rèn)精度是兩位小數(shù),但可以通過 setDecimals() 來改變。
QSpinBox類中的常用方法:
每次單擊向上/向下按鈕時(shí),QSpinBox 計(jì)數(shù)器都會(huì)發(fā)射 valueChanged 信號(hào),可以從相應(yīng)的 slot 函數(shù)中通過 value() 函數(shù)獲得計(jì)數(shù)器的當(dāng)前值。
- 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)
- self.setWindowTitle("SpinBox 例子")
- self.resize(300, 100)
- 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)
- def valuechange(self):
- self.l1.setText("current value:" + str(self.sp.value()))
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- ex = spindemo()
- ex.show()
- sys.exit(app.exec_())
效果:
QSpinBox和QDoubleSpinBox的比較
- QSpingBox是一個(gè)計(jì)數(shù)器控件,允許用戶選擇一個(gè)整數(shù)值,通過上下按鈕或鍵盤上下箭頭來增加或減少當(dāng)前值,同時(shí)支持用戶手動(dòng)輸入。
- 在默認(rèn)情況下QSpingBox的默認(rèn)取值范圍是0-99,步長為1。
- QSpinBox類和QDoubleSpinBox類均派生自QAbstractSpinBox類,QSpinBox用于處理整數(shù)值,QDoubleSpinBox則用于處理浮點(diǎn)值,他們之間的區(qū)別就是處理數(shù)據(jù)的類型不同,其他功能都基本相投,QDoubleSpinBox的默認(rèn)精度是兩位小數(shù),但可以通過setDecimals()來設(shè)置。
到此這篇關(guān)于PyQt5中QSpinBox計(jì)數(shù)器的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)PyQt5 QSpinBox計(jì)數(shù)器內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://www.jianshu.com/p/3a67ef2c315f