0%

PyQt4--《十一》滑块QSlider

提供一个沟槽,上面有一个滑块可以运动,可以用来控制一个有界值,滑块的位置代表了值的大小。

水平或垂直放置

  • 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
#-*-coding:utf-8-*-
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()