当前位置: 首页 > 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.dtcms.com/a/196053.html

相关文章:

  • 深入解析:如何基于开源OpENer开发EtherNet/IP从站服务
  • 高频面试题(含笔试高频算法整理)基本总结回顾110
  • 使用Spring Boot和Spring Security构建安全的RESTful API
  • 密文搜索-map容器+substr
  • Python爬虫(29)Python爬虫高阶:动态页面处理与云原生部署全链路实践(Selenium、Scrapy、K8s)
  • 利用SenseGlove触觉手套开发XR手术训练体验
  • 数据结构【AVL树】
  • AIGC在电商行业的应用:革新零售体验
  • MinIO深度解析:从入门到实战——对象存储系统全指南
  • exit耗时高
  • STM32中的DMA
  • Vue3学习(组合式API——父、子组件间通信详解)
  • C++学习:六个月从基础到就业——C++11/14:auto类型推导
  • Linux517 rsync同步 rsync借xinetd托管 配置yum源回顾
  • ChatGPT + DeepSeek 联合润色的 Prompt 模板指令合集,用来润色SCI论文太香了!
  • SECERN AI提出3D生成方法SVAD!单张图像合成超逼真3D Avatar!
  • day27 python 装饰器
  • 低空经济发展现状与前景
  • 使用lvm进行磁盘分区
  • 致敬经典 << KR C >> 之打印输入单词水平直方图和以每行一个单词打印输入 (练习1-12和练习1-13)
  • 基于Spring Boot和Vue的在线考试系统架构设计与实现(源码+论文+部署讲解等)
  • DeerFlow试用
  • 基于单片机的防盗报警器设计与实现
  • RT Thread FinSH(msh)调度逻辑
  • 计算机网络体系结构深度解析:从理论到实践的全面梳理
  • UE中的各种旋转
  • 视频下载器 2.3.9 | 自动识别并下载网页视频,界面简洁无广告带私密空间
  • AIStarter Windows 版本迎来重磅更新!模型插件工作流上线,支持 Ollama / ComfyUI 等多平台本地部署模型统一管理
  • c/c++的opencv的轮廓匹配初识
  • 使用 CodeBuddy 开发一款富交互的屏幕录制与注释分享工具开发纪实