PyQt QSlider小部件及信号
QSlider 类对象为用户展示了一个可以移动的手柄的凹槽。它是一个经典的用于控制有界值的小部件。手柄在凹槽上的位置相当于控件的下限和上限之间的整数。
可以通过在构造函数中指定方向来以水平或垂直方式显示滑块控件。
self.sp = QSlider(Qt.Horizontal)
self.sp = QSlider(Qt.Vertical)
下面的表格列出了QSlider类中一些常用的方法:
以下是QSlider最常用的方法:
Sr.No. | 方法&描述 |
---|---|
1 | setMinimum() 设置滑块的最小值 |
2 | setMaximum() 设置滑块的最大值 |
3 | setSingleStep() 设置递增/递减步长 |
4 | setValue() 以编程方式设置控件的值 |
5 | value() 返回当前值 |
6 | setTickInterval() 在槽上放置刻度的数量 |
7 | setTickPosition() 在槽上放置刻度。 |
setTickPosition() 在槽上放置刻度。取值为−
取值 | 描述 |
---|---|
QSlider.NoTicks | 无刻度标记 |
QSlider.TicksBothSides | 两侧有刻度标记 |
QSlider.TicksAbove | 刻度标记在滑块上方 |
QSlider.TicksBelow | 刻度标记在滑块下方 |
QSlider.TicksLeft | 刻度标记在滑块左侧 |
QSlider.TicksRight | 刻度标记在滑块右侧 |
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()
上述代码生成以下输出-
拖动滑动条手柄时,标签的字体大小会随之变化。