1. 程式人生 > 程式設計 >python GUI庫圖形介面開發之PyQt5滑塊條控制元件QSlider詳細使用方法與例項

python GUI庫圖形介面開發之PyQt5滑塊條控制元件QSlider詳細使用方法與例項

PyQt5滑塊條控制元件QSlider介紹

QSlider控制元件提供一個垂直或者水平的滑動條,滑動條是一個用於控制有界值典型的控制元件,它允許使用者沿水平或者垂直方向在某一範圍內移動滑塊,並將滑塊所在的位置轉換為一個合法範圍內的整數值,有時候這中方式比輸入數字或者使用SpinBox(計數器·)更加自然,在槽函式中對滑塊所在位置的處理相當於從整數之間的最小值和最高值進行取值

一個滑塊條控制元件可以以垂直或者水平的方式顯示,在建構函式中進行設定

self.sp=QSlider(Qt.Horizontal)
self.sp=Qslider(Qt.Vertical)

QSlider類中常用的方法如表所示

方法 描述
setMinimum() 設定滑動條控制元件的最小值
setMaximum() 設定滑動條控制元件的最大值
setSingleStep() 設定滑動條控制元件的步長
setValue() 設定滑動條控制元件的值
value() 獲取滑動條控制元件的值
setTickInterval() 設定刻度間隔
setTickPosition() 設定刻度標記的位置,可以輸入一個列舉值,這個列舉值指定刻度線想當與滑塊和使用者操作的位置,以下是可以輸入的列舉值:
QSlider.NoTicks:不繪製任何刻度線
QSlider.TicksBothSides:在滑塊的兩側繪製刻度線
QSlider.TicksAbove:在滑塊的(水平)上方繪製刻度線
QSlider.TicksBelow:在滑塊的(水平)下方繪製刻度線
QSlider.TicksLeft:在滑塊的(垂直)左側繪製刻度線
QSlider.TicksRight,在滑塊的(垂直)右側繪製刻度線

QSlider類中的常用訊號

訊號 描述
vlaueChanged 當滑塊的值發生改變時發射此訊號,此訊號是最常用的
sliderPressed 當用戶按下滑塊時發射此訊號
sliderMoved 當用戶拖動滑塊時發射此訊號
slierReleased 當用戶釋放滑塊時發射此訊號

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)
    #設定標題與初始大小
    self.setWindowTitle('QSlider例子')
    self.resize(300,100)

    #垂直佈局
    layout=QVBoxLayout()

    #建立標籤,居中
    self.l1=QLabel('Hello PyQt5')
    self.l1.setAlignment(Qt.AlignCenter)
    layout.addWidget(self.l1)
    #建立水平方向滑動條
    self.s1=QSlider(Qt.Horizontal)
    ##設定最小值
    self.s1.setMinimum(10)
    #設定最大值
    self.s1.setMaximum(50)
    #步長
    self.s1.setSingleStep(3)
    #設定當前值
    self.s1.setValue(20)
    #刻度位置,刻度下方
    self.s1.setTickPosition(QSlider.TicksBelow)
    #設定刻度間距
    self.s1.setTickInterval(5)
    layout.addWidget(self.s1)
    #設定連線訊號槽函式
    self.s1.valueChanged.connect(self.valuechange)

    self.setLayout(layout)

  def valuechange(self):
    #輸出當前地刻度值,利用刻度值來調節字型大小
    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_())

執行效果圖如下

python GUI庫圖形介面開發之PyQt5滑塊條控制元件QSlider詳細使用方法與例項

python GUI庫圖形介面開發之PyQt5滑塊條控制元件QSlider詳細使用方法與例項

程式碼分析:

在這個例子中,將一個標籤和一個水平滑動條放置在一個垂直佈局管理器中,將滑塊的valueChanged訊號連線到valuechange()函式

self.s1.valueChanged.connect(self.valuechange)

槽函式valuechange()讀取滑塊的當前值,並將其作為字號的大小

size=self.s1.value()
self.l1.setFont(QFont('Arial',size))

使用setTickInterval(5)設定刻度間隔後,在繪製刻度時就會有幾個刻度點,刻度點數=(最大值-最小值)/刻度間隔+1

self.s1.setMinimum(10)
self.s1.setMaximum(50)
self.s1.setTickInterval(5)

本文詳細介紹了PyQt5滑塊條控制元件QSlider使用方法與例項,更多關於PyQt5控制元件知識請檢視下面的相關連結