PyQt5系列教程(19):微調框2

上期我們介紹了微調框(QSpinBox),這期作為上期的補充,今天把QDoubleSpinBox簡單介紹一下(篇幅不長)。

總體說明

大部分的總體說明和QSpinBox的差不多(詳見:《PyQt5:微調框1》),這裡主要把有差別的地方談一下(三點)。

  1. QDoubleSpinBox會捨去數字,以便以當前精度顯示。在QDoubleSpinBox小數設置為2,調用setValue(2.555)將導致value()返回2.56。
  2. spinbox的默認精度為2位小數,但可以使用setDecimals()更改。
  3. 除了最終的前綴和後綴內容外,QDoubleSpinBox的顯示值限制為18個字元。這個限制是用來保持微調時即使是非常大的值也可以使用。

更多詳細的介紹請見官網:QDoubleSpinBox Class

QDoubleSpinBox小例子

先來看看具體例子的效果吧。

部分核心代碼如下:

class Example(QWidget):n def __init__(self):n super().__init__()n self.initUI()nn def initUI(self):nn self.resize(370,190)n self.setWindowTitle(關注微信公眾號:學點編程吧--小數微調框)nn self.sp = QDoubleSpinBox(self)n self.sp.setGeometry(10,50,100,20)n self.sp.setRange(0,20)n self.sp.setSingleStep(0.1)nn self.lb = QLabel("QDoubleSpinBox精度設置為:2",self)n self.lb.move(120,50)nn self.sl = QSlider(Qt.Vertical,self)n self.sl.setGeometry(300,30,30,100)n self.sl.setRange(0,9)n self.sl.setValue(0)n self.sl.setTickPosition(QSlider.TicksBelow)nn self.sl.valueChanged.connect(self.spinbox_changevalue)n self.show()n n def spinbox_changevalue(self,value):n if value <= 7:n self.lb.setText("QDoubleSpinBox精度設置為:" + str(value+2))n self.sp.setDecimals(value+2)n

這個例子我們設置了精度值,最小2,最大9,通過滑塊進行調節。涉及滑塊的部分內容,請參考《PyQt5:小車快跑(滑塊的使用)》

self.sp = QDoubleSpinBox(self)nself.sp.setGeometry(10,50,100,20)nself.sp.setRange(0,20)nself.sp.setSingleStep(0.1)n

新建一個QDoubleSpinBox對象,設置最小最大值範圍(0-20),單步步長0.1。

self.sl.valueChanged.connect(self.spinbox_changevalue)ndef spinbox_changevalue(self,value):n if value <= 7:n self.lb.setText("QDoubleSpinBox精度設置為:" + str(value+2))n self.sp.setDecimals(value+2)n

這個就是我們拖動滑塊的時候,在標籤上顯示精度值大小。因為QDoubleSpinBox對象的精度是從2開始,但是滑塊的值是從0開始,所以我們給滑塊的值加2,並給將其設置為QDoubleSpinBox的精度。

最後

ok,今天的介紹暫時就到這裡吧,算是水了一章。下期我們再約。

如果你想要本次教程中的相關源碼,請關注微信公眾號:學點編程吧,發送pyqt519,會自動得到相應的百度網盤下載鏈接。

推薦閱讀:

看我如何進行Python對象注入利用
Python從零開始系列連載(10)——Python的基本運算和表達式(中)
Python課件的中文版
Python操作SQLite/MySQL/LMDB/LevelDB

TAG:PyQt | Python | Python教程 |