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列表操作使用示例分享
Feb 21 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
Nov 04 Python
Python中max函数用法实例分析
Jul 17 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 Python
Python插入Elasticsearch操作方法解析
Jan 19 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 Python
Python unittest基本使用方法代码实例
Jun 29 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
PyQt5中QSpinBox计数器的实现
Jan 18 Python
Python 实现定积分与二重定积分的操作
May 26 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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
php中的依赖注入实例详解
2019/08/14 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
python 随机数生成的代码的详细分析
2011/05/15 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
Python中生成ndarray实例讲解
2021/02/22 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
新锐科技Java程序员面试题
2016/07/25 面试题
青年志愿者活动总结
2014/04/26 职场文书
员工薪酬激励方案
2014/06/13 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
专业见习报告范文
2014/11/03 职场文书
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
MySQL中的隐藏列的具体查看
2021/09/04 MySQL
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB