- PyQt 教程
- PyQt - 首页
- PyQt - 简介
- PyQt - 环境配置
- PyQt - Hello World
- PyQt - 主要类
- PyQt - 使用 Qt Designer
- PyQt - 元对象
- PyQt 信号 & 槽
- PyQt - 信号和槽
- PyQt - 支持和信号
- PyQt - 未绑定和绑定信号
- PyQt - 使用 PyQtSignal 创建新信号
- PyQt - 连接、断开和发射信号
- PyQt - 槽装饰器
- PyQt - 槽连接
- PyQt 布局
- PyQt - 布局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基本控件
- PyQt - 基本控件
- PyQt - QLabel 控件
- PyQt - QLineEdit 控件
- PyQt - QPushButton 控件
- PyQt - QRadioButton 控件
- PyQt - QCheckBox 控件
- PyQt - QComboBox 控件
- PyQt - QSpinBox 控件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控件
- PyQt - QFontComboBox 控件
- PyQt - QDoubleSpinBox 控件
- PyQt - QToolBox 控件
- PyQt - QDialog 类
- PyQt - QMessageBox
- PyQt - 多文档界面
- PyQt - 拖放操作
- PyQt 绘图 API
- PyQt - 绘图 API
- PyQt 数据库
- PyQt - 数据库处理
- PyQt 核心知识
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 类
- PyQt 有用资源
- PyQt - 快速指南
- PyQt - 有用资源
- PyQt - 讨论
PyQt - QSlider 控件 & 信号
QSlider 类对象为用户提供了一个槽,用户可以在其上移动一个滑块。它是一个经典的控制有界值的控件。滑块在槽中的位置等效于控制的下限和上限之间的整数。
可以通过在构造函数中指定方向,以水平或垂直方式显示滑块控件。
self.sp = QSlider(Qt.Horizontal) self.sp = QSlider(Qt.Vertical)
下表列出了 QSlider 类的一些常用方法:
以下是 QSlider 最常用的方法。
序号 | 方法 & 描述 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
setMinimum() 设置滑块的下限 |
||||||||||||
2 |
setMaximum() 设置滑块的上限 |
||||||||||||
3 |
setSingleStep() 设置增量/减量步长 |
||||||||||||
4 |
setValue() 以编程方式设置控件的值 |
||||||||||||
5 |
value() 返回当前值 |
||||||||||||
6 |
setTickInterval() 在槽上设置刻度的数量 |
||||||||||||
7 |
setTickPosition() 在槽上放置刻度。值如下:
|
QSlider 信号
序号 | 方法 & 描述 |
---|---|
1 |
valueChanged() 当滑块的值发生变化时 |
2 |
sliderPressed() 当用户开始拖动滑块时 |
3 |
sliderMoved() 当用户拖动滑块时 |
4 |
sliderReleased() 当用户释放滑块时 |
valueChanged() 信号是最常使用的信号。
示例
以下示例演示了上述功能。一个标签和一个水平滑块放置在垂直布局中。滑块的 valueChanged() 信号连接到 valuechange() 方法。
self.sl.valueChanged.connect(self.valuechange)
槽函数 valuechange() 读取滑块的当前值,并将其用作标签标题的字体大小。
size = self.sl.value() self.l1.setFont(QFont("Arial",size))
完整的代码如下:
import sys from PyQt4.QtCore import * from PyQt4.QtGui 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()
以上代码产生以下输出:
当滑块的滑块在滑块上移动时,标签的字体大小会发生变化。
广告