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的函数嵌套的使用方法
Jan 24 Python
Django学习笔记之Class-Based-View
Feb 15 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
django如何连接已存在数据的数据库
Aug 14 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 Python
Python魔法方法功能与用法简介
Apr 04 Python
用django-allauth实现第三方登录的示例代码
Jun 24 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
Python实现自动访问网页的例子
Feb 21 Python
python 合并多个excel中同名的sheet
Jan 22 Python
解决numpy数组互换两行及赋值的问题
Apr 17 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
php生成二维码
2015/08/10 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
零基础php编程好学吗
2019/10/11 PHP
关于extjs4如何获取grid修改后的数据的问题
2013/08/07 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
2013/12/04 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
Python基于DES算法加密解密实例
2015/06/03 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
python多线程和多进程关系详解
2020/12/14 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
行政专员岗位职责范本
2014/08/26 职场文书
2014年党建工作总结
2014/11/11 职场文书
学生党员检讨书范文
2014/12/27 职场文书
病房管理制度范本
2015/08/06 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers