提供一个沟槽,上面有一个滑块可以运动,可以用来控制一个有界值,滑块的位置代表了值的大小。
水平或垂直放置
- 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的信号
- valueChanged():滑块的值改变
- sliderPressed():用户开始按下滑块
- sliderMoved():用户拖动了滑块
- sliderReleased():用户释放了滑块
栗子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| import sys from PyQt4.QtCore import * from PyQt4.QtGui import *
class window(QWidget): def __init__(self, parent=None): super(window, self).__init__(parent) self.init()
def init(self): layout = QVBoxLayout() self.l1 = QLabel("Hello") self.sl = QSlider(Qt.Horizontal)
self.l1.setAlignment(Qt.AlignCenter) self.sl.setMinimum(10) self.sl.setMaximum(30) self.sl.setValue(20) self.sl.setTickPosition(QSlider.TicksBelow) self.sl.setTickInterval(5) self.sl.valueChanged.connect(self.valuechange)
layout.addWidget(self.l1) layout.addWidget(self.sl)
self.setLayout(layout) self.setWindowTitle(u"QSlider ")
def valuechange(self): size = self.sl.value() self.l1.setFont(QFont("Arial", size))
def main(): app = QApplication(sys.argv) ex = window() ex.show() sys.exit(app.exec_())
if __name__ == '__main__': main()
|