GUI學習之十六 QSpinBox學習總結

2022-05-29 02:51:13 字數 3332 閱讀 9503

我們在上一章講了步長調節器qabstractspinbox,這一節來講一下它的乙個子類:qspinbox

一.描述

qspinbox是乙個主要處理整數和離散值集合的步長調節器控制項,它允許使用者通過單擊增減按鈕或用鍵盤輸入值來實現當前顯示值的改變。它主要顯示整數,也可以通過自定義顯示一些離散的值集(周一~週日)

qspinbox繼承了qabstractspinbox,可以使用父類的各種api。

二.功能

1.建構函式

from pyqt5.qt import *

import

sysclass

window(qwidget):

def__init__

(self):

super().

__init__

() self.ui_setup()

defui_setup(self):

sb =qspinbox(self)

sb.resize(150,50)

sb.move(100,100)

self.sb =sb

pass

if__name__ =='

__main__':

window =window()

window.show()

建立qspinbox控制項

建立的控制項在預設情況下數值範圍是從0到99

2.最大值和最小值

qspinbox.setminimum()        #

設定最大值

qspinbox.setmaximum() #

設定最小值

qspinbox.setrange(min,max) #

設定範圍

qspinbox.maximum() #

獲取最大值

qspinbox.minimum() #

獲取最小值

3.數值迴圈

可以通過設定數值迴圈,在資料到最大值時可以直接轉到最小值(反之也可以)

啟用數值迴圈

是否啟用數值迴圈

4.步長設定

設定步長

qspinbox.singlestep() #

獲取步長——>str

設定好步長每次加減的數值按設定值操作。

5.字首和字尾和最小值特殊文字

qspinbox.setprefix()             #

設定字首

qspinbox.setsuffix() #

設定字尾

qspinbox.prefix() #

獲取字首——>str

qspinbox.suffix() #

獲取字尾——>str

加了字首或字尾只改變量值,前字尾不變化

還可以在最小值時顯示乙個固定的字元,比如0元的時候定義為免費

qspinbox.setspecialvaluetext('')                #

設定最小值對應文字

qspinbox.specialvaluetext() #

獲取最小值對應文字——>str

在最小值時顯示設定的文字,設定後是不會顯示前字尾字串的。(這個用法是父類的)

6.進製更改

qspinbox.setdisplayintegerbase(int)                #

設定進製

qspinbox.displayintegerbase() #

獲取進製——>str

這裡設定的進製是不光常用的二進位制、八進位制和十進位制的,任何乙個整數是都可以的(還可以大於16,不過實際沒什麼意義,0-f後可以繼續)

7.數值的設定和獲取

qspinbox.setvalue()          #

設定值qspinbox.value() #

獲取int的值

這裡用的value獲取的是int對應的值,不包含前字尾,最小值時不對應特殊文字

8.自定義展示格式

我們可以通過重寫下面的函式來實現自定義的格式顯示

class

sb(qspinbox):

deftextfromvalue(self, v: int):

pass

這個函式傳遞了當前的整數值,

from pyqt5.qt import *

import

sysclass

sb(qspinbox):

def textfromvalue(self, v: int): #

自定義展示格式

week = ['

星期日','

星期一','

星期二','

星期三','

星期四','

星期五','

星期六'

,] weekday =week[v]

return

weekday

class

window(qwidget):

def__init__

(self):

super().

__init__

() self.ui_setup()

defui_setup(self):

sb = sb(self) #

呼叫的是自定義的qspinbox控制項

sb.resize(100,30)

sb.move(100,100)

sb.setrange(0,6)

self.sb =sb

pass

if__name__ =='

__main__':

window =window()

window.show()

自定義樣式顯示

這樣就顯示的是週日到週六了。

三.訊號

除了繼承父類的

qspinbox.editingfinished()
結束編輯訊號外,它還帶有另外一種訊號

qspinbox.valuechanged()
它傳遞有int型別的訊號,還可以重構一下傳送字串型別的資料

qspinbox.valuechanged[str]()
傳送字串時是按照當前顯示的狀態傳送的,包含有前字尾以及自定義的顯示型別。

QT之GUI學習筆記 一

在 includepath d installopencv opencvbinary include opencv d installopencv opencvbinary include opencv2 d installopencv opencvbinary include libs d ins...

學習GUI筆記

圖形使用者程式設計 c sframe的子類 void settitle string title frame類中 將此窗體的標題設定為指定的字串。void setsize int width,int height window類中 調整元件的大小,使其寬度為 width,高度為 height。voi...

GUI開發之MFC winforms sdk小鑑

哈哈,終於也有我來寫blog的時候啦。一直以來有不懂不會的問題就會在網上找答案,經常就是在csdn上找到了。那個時候就特別感謝各種博主。今天剛剛開通這個blog,我就簡單說一下自己這兩天在做軟體工程課程大作業的gui部分時的感受吧!一開始很迷惑,究竟要怎麼做gui呢?之前曾經接觸過c 的程式設計,感...