python GUI庫圖形界面開發(fā)之PyQt5滑塊條控件QSlider詳細使用方法與實例
PyQt5滑塊條控件QSlider介紹
QSlider控件提供一個垂直或者水平的滑動條,滑動條是一個用于控制有界值典型的控件,它允許用戶沿水平或者垂直方向在某一范圍內(nèi)移動滑塊,并將滑塊所在的位置轉(zhuǎn)換為一個合法范圍內(nèi)的整數(shù)值,有時候這中方式比輸入數(shù)字或者使用SpinBox(計數(shù)器·)更加自然,在槽函數(shù)中對滑塊所在位置的處理相當于從整數(shù)之間的最小值和最高值進行取值
一個滑塊條控件可以以垂直或者水平的方式顯示,在構(gòu)造函數(shù)中進行設(shè)置
self.sp=QSlider(Qt.Horizontal) self.sp=Qslider(Qt.Vertical)
QSlider類中常用的方法如表所示
方法 | 描述 |
---|---|
setMinimum() | 設(shè)置滑動條控件的最小值 |
setMaximum() | 設(shè)置滑動條控件的最大值 |
setSingleStep() | 設(shè)置滑動條控件的步長 |
setValue() | 設(shè)置滑動條控件的值 |
value() | 獲取滑動條控件的值 |
setTickInterval() | 設(shè)置刻度間隔 |
setTickPosition() | 設(shè)置刻度標記的位置,可以輸入一個枚舉值,這個枚舉值指定刻度線想當與滑塊和用戶操作的位置,以下是可以輸入的枚舉值: |
QSlider.NoTicks:不繪制任何刻度線 | |
QSlider.TicksBothSides:在滑塊的兩側(cè)繪制刻度線 | |
QSlider.TicksAbove:在滑塊的(水平)上方繪制刻度線 | |
QSlider.TicksBelow:在滑塊的(水平)下方繪制刻度線 | |
QSlider.TicksLeft:在滑塊的(垂直)左側(cè)繪制刻度線 | |
QSlider.TicksRight,在滑塊的(垂直)右側(cè)繪制刻度線 |
QSlider類中的常用信號
信號 | 描述 |
---|---|
vlaueChanged | 當滑塊的值發(fā)生改變時發(fā)射此信號,此信號是最常用的 |
sliderPressed | 當用戶按下滑塊時發(fā)射此信號 |
sliderMoved | 當用戶拖動滑塊時發(fā)射此信號 |
slierReleased | 當用戶釋放滑塊時發(fā)射此信號 |
QSlider的使用實例
通過滑塊控制字體的大小
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * class SliderDemo(QWidget): def __init__(self,parent=None): super(SliderDemo, self).__init__(parent) #設(shè)置標題與初始大小 self.setWindowTitle('QSlider例子') self.resize(300,100) #垂直布局 layout=QVBoxLayout() #創(chuàng)建標簽,居中 self.l1=QLabel('Hello PyQt5') self.l1.setAlignment(Qt.AlignCenter) layout.addWidget(self.l1) #創(chuàng)建水平方向滑動條 self.s1=QSlider(Qt.Horizontal) ##設(shè)置最小值 self.s1.setMinimum(10) #設(shè)置最大值 self.s1.setMaximum(50) #步長 self.s1.setSingleStep(3) #設(shè)置當前值 self.s1.setValue(20) #刻度位置,刻度下方 self.s1.setTickPosition(QSlider.TicksBelow) #設(shè)置刻度間距 self.s1.setTickInterval(5) layout.addWidget(self.s1) #設(shè)置連接信號槽函數(shù) self.s1.valueChanged.connect(self.valuechange) self.setLayout(layout) def valuechange(self): #輸出當前地刻度值,利用刻度值來調(diào)節(jié)字體大小 print('current slider value=%s'%self.s1.value()) size=self.s1.value() self.l1.setFont(QFont('Arial',size)) if __name__ == '__main__': app=QApplication(sys.argv) demo=SliderDemo() demo.show() sys.exit(app.exec_())
運行效果圖如下
代碼分析:
在這個例子中,將一個標簽和一個水平滑動條放置在一個垂直布局管理器中,將滑塊的valueChanged信號連接到valuechange()函數(shù)
self.s1.valueChanged.connect(self.valuechange)
槽函數(shù)valuechange()讀取滑塊的當前值,并將其作為字號的大小
size=self.s1.value() self.l1.setFont(QFont('Arial',size))
使用setTickInterval(5)設(shè)置刻度間隔后,在繪制刻度時就會有幾個刻度點,刻度點數(shù)=(最大值-最小值)/刻度間隔+1
self.s1.setMinimum(10) self.s1.setMaximum(50) self.s1.setTickInterval(5)
本文詳細介紹了PyQt5滑塊條控件QSlider使用方法與實例,更多關(guān)于PyQt5控件知識請查看下面的相關(guān)鏈接
相關(guān)文章
jupyter notebook引用from pyecharts.charts import Bar運行報錯
這篇文章主要介紹了jupyter notebook引用from pyecharts.charts import Bar運行報錯,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python序列化與反序列化相關(guān)知識總結(jié)
今天給大家?guī)黻P(guān)于python的相關(guān)知識,文章圍繞著Python序列化與反序列展開,文中有非常詳細的介紹,需要的朋友可以參考下2021-06-06Python自動化短視頻生成腳本實現(xiàn)熱門視頻流水線生產(chǎn)
有粉絲和說,最近在網(wǎng)上看到一些視頻營銷號一天能發(fā)布幾百條短視頻, 感覺是批量生成的,能不能用Python做個自動化短視頻生成腳本呢?今天就帶大家一起實現(xiàn)熱門視頻批量流水線生產(chǎn)2021-09-09pycharm設(shè)置python文件模板信息過程圖解
這篇文章主要介紹了pycharm設(shè)置python文件模板信息過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03