当前位置: 首页 > 文档资料 > PyQt 中文教程 >

QSlider 小工具和信号(QSlider Widget & Signal)

优质
小牛编辑
136浏览
2023-12-01

QSlider类对象为用户提供了一个可以移动手柄的凹槽。 它是一个控制有界值的经典小部件。 手柄在凹槽上的位置等于控制器的下边界和上边界之间的整数。

通过提及构造函数中的方向,可以以水平或垂直方式显示滑块控件。

self.sp = QSlider(Qt.Horizontal)
self.sp = QSlider(Qt.Vertical)

下表列出了QSlider类的一些常用方法 -

Sr.No.方法和描述
1

setMinimum()

设置滑块的下限

2

setMaximum()

设置滑块的上限

3

setSingleStep()

设置增量/减量步骤

4

setValue()

以编程方式设置控件的值

5

value()

返回当前值

6

setTickInterval()

将凹槽的数量放在凹槽上

7

setTickPosition()

将蜱虫放在凹槽上。 价值观是 -

QSlider.NoTicks没有刻度线
QSlider.TicksBothSides两侧刻有标记
QSlider.TicksAbove滑块上方的刻度线
QSlider.TicksBelow滑块下方的刻度线
QSlider.TicksLeft勾选滑块左侧的标记
QSlider.TicksRight勾选滑块右侧的标记

QSlider信号

Sr.No.方法和描述
1

valueChanged()

当滑块的值发生变化时

2

sliderPressed()

当用户开始拖动滑块时

3

sliderMoved()

当用户拖动滑块时

4

sliderReleased()

当用户释放滑块时

valueChanged()信号是最常用的信号。

例子 (Example)

以下示例演示了上述功能。 标签和水平滑块以垂直布局放置。 Slider的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()

上面的代码产生以下输出 -

小工具和信号输出

随着滑块的手柄在手柄上移动,标签的字体大小会发生变化。