PyQt5 - QSlider 小部件和信号
QSlider 类对象向用户展示了一个可以移动手柄的凹槽。 它是控制有界值的经典小部件。 手柄在凹槽上的位置相当于控件上下界之间的整数。
通过在构造函数中提及方向,可以以水平或垂直方式显示滑块控件。
self.sp = QSlider(Qt.Horizontal) self.sp = QSlider(Qt.Vertical)
下表列出了QSlider类的一些常用方法 −
序号 | 方法 & 说明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
setMinimum() 设置滑块的下限 |
||||||||||||
2 |
setMaximum() 设置滑块的上限 |
||||||||||||
3 |
setSingleStep() 设置递增/递减步长 |
||||||||||||
4 |
setValue() 以编程方式设置控件的值 |
||||||||||||
5 |
value() 返回当前值 |
||||||||||||
6 |
setTickInterval() 将刻度数放在凹槽上 |
||||||||||||
7 |
setTickPosition() 将刻度放在凹槽上。 值为 −
|
QSlider Signals
以下是QSlider Signals中的方法 −
序号 | 方法 & 说明 |
---|---|
1 |
valueChanged() 当滑块的值发生变化时 |
2 |
sliderPressed() 当用户开始拖动滑块时 |
3 |
sliderMoved() 当用户拖动滑块时 |
4 |
sliderReleased() 当用户释放滑块时 |
valueChanged() 信号是最常用的信号。
示例
以下示例演示了上述功能。 一个标签和一个水平滑块放置在垂直布局中。 Slider 的 valueChanged() 信号连接到 valuechange() 方法。
self.sl.valueChanged.connect(self.valuechange)
slot 函数 valuechange() 读取滑块的当前值并将其用作标签标题的字体大小。
size = self.sl.value() self.l1.setFont(QFont("Arial",size))
完整代码如下 −
import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class sliderdemo(QWidget): def __init__(self, parent = None): super(sliderdemo, self).__init__(parent) layout = QVBoxLayout() self.l1 = QLabel("Hello") self.l1.setAlignment(Qt.AlignCenter) layout.addWidget(self.l1) self.sl = QSlider(Qt.Horizontal) self.sl.setMinimum(10) self.sl.setMaximum(30) 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) self.setWindowTitle("SpinBox demo") def valuechange(self): size = self.sl.value() self.l1.setFont(QFont("Arial",size)) def main(): app = QApplication(sys.argv) ex = sliderdemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main()
Output
上面的代码产生以下输出 −
标签的字体大小随着滑块的手柄在手柄上移动而改变。