当前位置: 首页 > news >正文

PyQt5基本窗口控件(QSlider(滑动条))

QSlider(滑动条)

QSlider控件提供了一个垂直或水平的滑动条,滑动条是一个用于控制有界值的
典型控件,它允许用户沿水平或垂直方向在某一范围内移动滑块,并将滑块所在的
位置转换成一个合法范围内的整数值。有时候这种方式比输入数字或者使用SpinBox
(计数器)更加自然。在槽函数中对滑块所在位置的处相当于从整数之间的最小值
和最高值进行取值。

一个滑块条控件可以以水平或垂直的方式显示,在构造函数中进行设置。

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

QSlider类中的常用方法如表4一19所示。

方法描述
setMinimum()设置滑动条控件的最小值
setMaximum()设置滑动条控件的最大值
setSingleStep()设置滑动条控件递增/递喊的步长值
setValue()设置滑动条控件的值
value()获得滑动条控件的值
setTickInterval()设置刻度间隔
setTickPosition()设置刻度标记的位置,可以输入一个枚举值,这个枚举值指定刻度线相对于块和用户搡作的位置。以下是可以输入的枚举值 QSIider.NoTicks,不绘制任何刻度线;QSlider.TicksBothSides,在滑块的两侧绘制刻度线;QSIider.TicksAbove.在(水平)滑块上方绘制刻度线;QSlider.TicksBeIow,《水平)滑块下方绘制刻度线;QSlider.TicksLeft,在(垂直)块左侧绘制刻度线;QSIider.TicksRight,在(垂直)满块右侧绘制刻线

QSlider类中的常用信号如表4-20所示。

信号描述
vaIueChanged描述当滑块的佰发生改变时发射此信号.此信号是最常用的
sliderPressed当用户按下滑块时发射此信号
sliderMoved当用户拖动滑块时发射此信号
sliderReleased当用户释放滑块时发射此信号

QSlider的使用

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)self.setWindowTitle('Slider Demo')self.resize(300,100)layout=QVBoxLayout()self.l1=QLabel("Hello PyQt5")self.l1.setAlignment(Qt.AlignCenter)layout.addWidget(self.l1)# 水平方向self.sl=QSlider(Qt.Horizontal)# 设置最小值self.sl=QSlider(Qt.Horizontal)# 设置最小值self.sl.setMinimum(10)# 设置最大值self.sl.setMaximum(50)# 步长self.sl.setSingleStep(3)# 设置当前值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)def valueChange(self):print('current slider value=%s' % self.sl.value())size=self.sl.value()self.sl.setFont(QFont('Arial',size))if __name__ == '__main__':app=QApplication(sys.argv)demo=SliderDemo()demo.show()sys.exit(app.exec_())

运行效果:

image

代码分析
在这个例子中,将一个标签和一个水平滑动条放置在一个垂直布局管理器中。
将滑块的valueChanged信号连接到valuechange()函数。

self.sl.valueChanged.connect(self.valueChange)

槽函数valuechange()读取滑块的当前值,并将其作为字号的大小。

 size=self.sl.value()self.sl.setFont(QFont('Arial',size))

使用setTickInterval(5)设置刻度间隔后,在绘制刻度时就会有9个刻度点(从
10开始,每隔步长5绘制一个点,到50处结束),也就是说,刻度点个数=(最大
值-最小值》刻度间隔+1,本例中的刻度点个数为:(50-10)/5+1=9。

 # 设置最小值
self.sl.setMinimum(10)# 设置最大值
self.sl.setMaximum(50)
# 设置刻度间隔
self.sl.setTickInterval(5)
http://www.xdnf.cn/news/502669.html

相关文章:

  • 【计网】 ARP地址解析协议 [工作过程]
  • hyper-v 虚拟机怎么克隆一台一样的虚拟机?
  • NHANES指标推荐:FMI
  • 【Linux笔记】——Linux线程控制创建、终止与等待|动态库与内核联动
  • 软件测试的常用的面试题【带答案】
  • 【汇总】影视仓接口地址,影视仓最新配置接口【2025.5】
  • 常见图算法解析:TSP问题、最大团/独立集问题、图着色问题、哈密尔顿回路问题、顶点覆盖问题和最长路径问题
  • Ocean: Object-aware Anchor-free Tracking
  • 中级网络工程师知识点4
  • 【文本切割器】RecursiveCharacterTextSplitter参数设置优化指南
  • ORACLE RAC环境REDO日志量突然增加的分析
  • 【以及好久没上号的闲聊】Unity记录8.1-地图-重构与优化
  • SQL Server 常用函数
  • QT使用QXlsx读取excel表格中的图片
  • 【自然语言处理与大模型】大模型(LLM)基础知识④
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(23):受身形
  • mAP、AP50、AR50:目标检测中的核心评价指标解析
  • 开源项目实战学习之YOLO11:12.2 ultralytics-models-sam-decoders.py源码分析
  • Vue百日学习计划Day19-20天详细计划-Gemini版
  • 密文搜索-map容器+substr
  • javaDoc
  • 电子电器架构 --- 整车造车阶段四个重要节点
  • Java卡与SSE技术融合实现企业级安全实时通讯
  • 提示词写的好,也可以生成EXE
  • MySQL多条件查询深度解析
  • Qt做的应用程序无法彻底关闭的问题解析
  • MySQL 查询执行流程全解析
  • IPD推行成功的核心要素(二十二)IPD流程持续优化性地推出具备商业成功潜力的产品与解决方案
  • 使用HtmlAgilityPack采集墨迹天气中的天气数据
  • 9.DMA