PyQt QSlider小部件及信号

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()

上述代码生成以下输出-

PyQt QSlider小部件及信号

拖动滑动条手柄时,标签的字体大小会随之变化。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程