python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例


Posted in Python onFebruary 28, 2020

PyQt5滑块条控件QSlider介绍

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

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

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

QSlider类中常用的方法如表所示

方法 描述
setMinimum() 设置滑动条控件的最小值
setMaximum() 设置滑动条控件的最大值
setSingleStep() 设置滑动条控件的步长
setValue() 设置滑动条控件的值
value() 获取滑动条控件的值
setTickInterval() 设置刻度间隔
setTickPosition() 设置刻度标记的位置,可以输入一个枚举值,这个枚举值指定刻度线想当与滑块和用户操作的位置,以下是可以输入的枚举值:
QSlider.NoTicks:不绘制任何刻度线
QSlider.TicksBothSides:在滑块的两侧绘制刻度线
QSlider.TicksAbove:在滑块的(水平)上方绘制刻度线
QSlider.TicksBelow:在滑块的(水平)下方绘制刻度线
QSlider.TicksLeft:在滑块的(垂直)左侧绘制刻度线
QSlider.TicksRight,在滑块的(垂直)右侧绘制刻度线

QSlider类中的常用信号

信号 描述
vlaueChanged 当滑块的值发生改变时发射此信号,此信号是最常用的
sliderPressed 当用户按下滑块时发射此信号
sliderMoved 当用户拖动滑块时发射此信号
slierReleased 当用户释放滑块时发射此信号

QSlider的使用实例

通过滑块控制字体的大小

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class SliderDemo(QWidget):
  def __init__(self,parent=None):
    super(SliderDemo, self).__init__(parent)
    #设置标题与初始大小
    self.setWindowTitle('QSlider例子')
    self.resize(300,100)

    #垂直布局
    layout=QVBoxLayout()

    #创建标签,居中
    self.l1=QLabel('Hello PyQt5')
    self.l1.setAlignment(Qt.AlignCenter)
    layout.addWidget(self.l1)
    #创建水平方向滑动条
    self.s1=QSlider(Qt.Horizontal)
    ##设置最小值
    self.s1.setMinimum(10)
    #设置最大值
    self.s1.setMaximum(50)
    #步长
    self.s1.setSingleStep(3)
    #设置当前值
    self.s1.setValue(20)
    #刻度位置,刻度下方
    self.s1.setTickPosition(QSlider.TicksBelow)
    #设置刻度间距
    self.s1.setTickInterval(5)
    layout.addWidget(self.s1)
    #设置连接信号槽函数
    self.s1.valueChanged.connect(self.valuechange)

    self.setLayout(layout)

  def valuechange(self):
    #输出当前地刻度值,利用刻度值来调节字体大小
    print('current slider value=%s'%self.s1.value())
    size=self.s1.value()
    self.l1.setFont(QFont('Arial',size))

if __name__ == '__main__':
  app=QApplication(sys.argv)
  demo=SliderDemo()
  demo.show()
  sys.exit(app.exec_())

运行效果图如下

python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例

python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例

代码分析:

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

self.s1.valueChanged.connect(self.valuechange)

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

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

使用setTickInterval(5)设置刻度间隔后,在绘制刻度时就会有几个刻度点,刻度点数=(最大值-最小值)/刻度间隔+1

self.s1.setMinimum(10)
self.s1.setMaximum(50)
self.s1.setTickInterval(5)

本文详细介绍了PyQt5滑块条控件QSlider使用方法与实例,更多关于PyQt5控件知识请查看下面的相关链接

Python 相关文章推荐
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
Python之列表的插入&替换修改方法
Jun 28 Python
Python3中_(下划线)和__(双下划线)的用途和区别
Apr 26 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
Python 实现一个手机号码获取妹子名字的功能
Sep 25 Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 Python
解决echarts中饼图标签重叠的问题
May 16 Python
Python并发编程实例教程之线程的玩法
Jun 20 Python
Python中的嵌套循环详情
Mar 23 Python
Python接口测试get请求过程详解
Feb 28 #Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 #Python
Python爬取365好书中小说代码实例
Feb 28 #Python
Python反爬虫伪装浏览器进行爬虫
Feb 28 #Python
使用wxpy实现自动发送微信消息功能
Feb 28 #Python
解决ROC曲线画出来只有一个点的问题
Feb 28 #Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 #Python
You might like
php+mysqli数据库连接的两种方式
2015/01/28 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
js函数调用常用方法详解
2012/12/03 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
Python使用sorted排序的方法小结
2017/07/28 Python
Python读写文件基础知识点
2019/06/10 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
python批量处理文件或文件夹
2020/07/28 Python
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
毕业生就业协议书
2014/04/11 职场文书
会议欢迎标语
2014/06/30 职场文书
元旦晚会活动总结
2014/07/09 职场文书
教代会闭幕词
2015/01/28 职场文书
班主任高考寄语
2015/02/26 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
雷锋的故事观后感
2015/06/10 职场文书
文明礼貌主题班会
2015/08/14 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
Elasticsearch 批量操作
2022/04/19 Python