1. 程式人生 > 實用技巧 >滑動條-QSlider

滑動條-QSlider

QSlider控制元件提供了一個垂直或水平的滑動條,滑動條是一個用於控制有界值的典型控制元件,它允許使用者沿水平或垂直方向在某一範圍內移動滑塊,並將滑塊所在的位置轉換成一個合法範圍內的整數值。

QSlider類中的常用方法

  setMinimum()    設定滑動條控制元件的最小值

  setMaximum()    設定滑動條控制元件的最大值

  setSingleStep()    設定滑動條控制元件遞增/遞減的步長值

  setValue()      設定滑動條控制元件的值

  value()       獲得滑動條控制元件的值

  setTickInterval()   設定刻度間隔

  setTickPosition()   設定刻度標記的位置,可以輸入一個列舉值,這個列舉值指定刻度線相對於滑塊和使用者操作的位置。以下是可以輸入的列舉值:

              QSlider.NoTicks,不繪製任何刻度線

              QSlider.TicksBothSides,在滑塊的兩側繪製刻度線

              QSlider.TicksAbove,在(水平)滑塊上方繪製刻度線

              QSlider.TicksBelow,在(水平)滑塊下方繪製刻度線

              QSlider.TicksLeft,在(垂直)滑塊左側繪製刻度線

              QSlider.TicksRight,在(垂直)滑塊右側繪製刻度線

QSlider類中的常用訊號

  valueChanged     當滑塊的值發生改變時發射此訊號,此訊號是最常用的

  sliderPressed     當用戶按下滑塊時發射此訊號

  sliderMoved      當用戶拖動滑塊時發射此訊號

  sliderReleased    當用戶釋放滑塊時發射此訊號

案例19 QSlider的使用

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import
QWidget, QApplication, QSlider, QComboBox, QLabel, QVBoxLayout class SliderDemo(QWidget): def __init__(self, parent=None): super().__init__(parent) self.setWindowTitle("Slider 例子") self.resize(300, 100) layout = QVBoxLayout() self.lb1 = QLabel("Hello PyQt5") self.lb1.setAlignment(Qt.AlignCenter) layout.addWidget(self.lb1) # 水平方向 self.sl = QSlider(Qt.Horizontal) self.sl.setMinimum(10) # 設定最小值 self.sl.setMaximum(50) # 設定最大值 self.sl.setSingleStep(3) # 步長 self.sl.setValue(20) # 設定當前值 self.sl.setTickPosition(QSlider.TicksBelow) # 刻度位置,刻度在下方 self.sl.setTickInterval(5) # 設定刻度間隔 layout.addWidget(self.sl) self.sl.valueChanged.connect(self.valuechange) self.setLayout(layout) def valuechange(self): print("current slider value=%s:" % self.sl.value()) size = self.sl.value() self.lb1.setFont(QFont("Arial", size)) if __name__ == "__main__": app = QApplication(sys.argv) demo = SliderDemo() demo.show() sys.exit(app.exec_())