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中的条件判断语句
May 14 Python
深入理解python try异常处理机制
Jun 01 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
python使用matplotlib模块绘制多条折线图、散点图
Apr 26 Python
对python中类的继承与方法重写介绍
Jan 20 Python
谈谈Python中的while循环语句
Mar 10 Python
Python缓存技术实现过程详解
Sep 25 Python
python构建指数平滑预测模型示例
Nov 21 Python
keras中的History对象用法
Jun 19 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
如何在python中实现ECDSA你知道吗
Nov 23 Python
Python的property属性详细讲解
Apr 11 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运行环境配置的详解
2013/06/04 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
javascript 对象的定义方法
2007/01/10 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
Python 绘制可视化折线图
2020/07/22 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
解释一下钝化(Swap out)
2016/12/26 面试题
中专毕业生自我鉴定
2013/11/21 职场文书
校园门卫岗位职责
2013/12/09 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
Python编程源码报错解决方法总结经验分享
2021/10/05 Python