python GUI庫(kù)圖形界面開發(fā)之PyQt5滑塊條控件QSlider詳細(xì)使用方法與實(shí)例
PyQt5滑塊條控件QSlider介紹
QSlider控件提供一個(gè)垂直或者水平的滑動(dòng)條,滑動(dòng)條是一個(gè)用于控制有界值典型的控件,它允許用戶沿水平或者垂直方向在某一范圍內(nèi)移動(dòng)滑塊,并將滑塊所在的位置轉(zhuǎn)換為一個(gè)合法范圍內(nèi)的整數(shù)值,有時(shí)候這中方式比輸入數(shù)字或者使用SpinBox(計(jì)數(shù)器·)更加自然,在槽函數(shù)中對(duì)滑塊所在位置的處理相當(dāng)于從整數(shù)之間的最小值和最高值進(jìn)行取值
一個(gè)滑塊條控件可以以垂直或者水平的方式顯示,在構(gòu)造函數(shù)中進(jìn)行設(shè)置
self.sp=QSlider(Qt.Horizontal) self.sp=Qslider(Qt.Vertical)
QSlider類中常用的方法如表所示
| 方法 | 描述 |
|---|---|
| setMinimum() | 設(shè)置滑動(dòng)條控件的最小值 |
| setMaximum() | 設(shè)置滑動(dòng)條控件的最大值 |
| setSingleStep() | 設(shè)置滑動(dòng)條控件的步長(zhǎng) |
| setValue() | 設(shè)置滑動(dòng)條控件的值 |
| value() | 獲取滑動(dòng)條控件的值 |
| setTickInterval() | 設(shè)置刻度間隔 |
| setTickPosition() | 設(shè)置刻度標(biāo)記的位置,可以輸入一個(gè)枚舉值,這個(gè)枚舉值指定刻度線想當(dāng)與滑塊和用戶操作的位置,以下是可以輸入的枚舉值: |
| QSlider.NoTicks:不繪制任何刻度線 | |
| QSlider.TicksBothSides:在滑塊的兩側(cè)繪制刻度線 | |
| QSlider.TicksAbove:在滑塊的(水平)上方繪制刻度線 | |
| QSlider.TicksBelow:在滑塊的(水平)下方繪制刻度線 | |
| QSlider.TicksLeft:在滑塊的(垂直)左側(cè)繪制刻度線 | |
| QSlider.TicksRight,在滑塊的(垂直)右側(cè)繪制刻度線 |
QSlider類中的常用信號(hào)
| 信號(hào) | 描述 |
|---|---|
| vlaueChanged | 當(dāng)滑塊的值發(fā)生改變時(shí)發(fā)射此信號(hào),此信號(hào)是最常用的 |
| sliderPressed | 當(dāng)用戶按下滑塊時(shí)發(fā)射此信號(hào) |
| sliderMoved | 當(dāng)用戶拖動(dòng)滑塊時(shí)發(fā)射此信號(hào) |
| slierReleased | 當(dāng)用戶釋放滑塊時(shí)發(fā)射此信號(hào) |
QSlider的使用實(shí)例
通過(guò)滑塊控制字體的大小
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è)置標(biāo)題與初始大小
self.setWindowTitle('QSlider例子')
self.resize(300,100)
#垂直布局
layout=QVBoxLayout()
#創(chuàng)建標(biāo)簽,居中
self.l1=QLabel('Hello PyQt5')
self.l1.setAlignment(Qt.AlignCenter)
layout.addWidget(self.l1)
#創(chuàng)建水平方向滑動(dòng)條
self.s1=QSlider(Qt.Horizontal)
##設(shè)置最小值
self.s1.setMinimum(10)
#設(shè)置最大值
self.s1.setMaximum(50)
#步長(zhǎng)
self.s1.setSingleStep(3)
#設(shè)置當(dāng)前值
self.s1.setValue(20)
#刻度位置,刻度下方
self.s1.setTickPosition(QSlider.TicksBelow)
#設(shè)置刻度間距
self.s1.setTickInterval(5)
layout.addWidget(self.s1)
#設(shè)置連接信號(hào)槽函數(shù)
self.s1.valueChanged.connect(self.valuechange)
self.setLayout(layout)
def valuechange(self):
#輸出當(dāng)前地刻度值,利用刻度值來(lái)調(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_())
運(yùn)行效果圖如下


代碼分析:
在這個(gè)例子中,將一個(gè)標(biāo)簽和一個(gè)水平滑動(dòng)條放置在一個(gè)垂直布局管理器中,將滑塊的valueChanged信號(hào)連接到valuechange()函數(shù)
self.s1.valueChanged.connect(self.valuechange)
槽函數(shù)valuechange()讀取滑塊的當(dāng)前值,并將其作為字號(hào)的大小
size=self.s1.value()
self.l1.setFont(QFont('Arial',size))
使用setTickInterval(5)設(shè)置刻度間隔后,在繪制刻度時(shí)就會(huì)有幾個(gè)刻度點(diǎn),刻度點(diǎn)數(shù)=(最大值-最小值)/刻度間隔+1
self.s1.setMinimum(10) self.s1.setMaximum(50) self.s1.setTickInterval(5)
本文詳細(xì)介紹了PyQt5滑塊條控件QSlider使用方法與實(shí)例,更多關(guān)于PyQt5控件知識(shí)請(qǐng)查看下面的相關(guān)鏈接
相關(guān)文章
python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型
這篇文章主要介紹了python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python @classmethod 的使用場(chǎng)合詳解
這篇文章主要介紹了python @classmethod 的使用場(chǎng)合詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python?設(shè)計(jì)模式中的創(chuàng)建型建造者模式
本文介紹Python設(shè)計(jì)模式中的創(chuàng)建型建造者模式,其表現(xiàn)為復(fù)雜對(duì)象的創(chuàng)建與表現(xiàn)相分離,這樣,同一個(gè)過(guò)程就有不同的表現(xiàn),想要?jiǎng)?chuàng)建一個(gè)由多個(gè)部分組成的對(duì)象,而且它的構(gòu)成需要一步接一步的完成。只有當(dāng)各個(gè)部分都完成了,這個(gè)對(duì)象才完整,下文相關(guān)自來(lái)哦,需要的朋友可以參考下2022-02-02
Python實(shí)現(xiàn)決策樹并且使用Graphviz可視化的例子
今天小編就為大家分享一篇Python實(shí)現(xiàn)決策樹并且使用Graphviz可視化的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
Python之關(guān)于類變量的兩種賦值區(qū)別詳解
這篇文章主要介紹了Python之關(guān)于類變量的兩種賦值區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Pandas中字符串和時(shí)間轉(zhuǎn)換與格式化的實(shí)現(xiàn)
本文主要介紹了Pandas中字符串和時(shí)間轉(zhuǎn)換與格式化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01

