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 27 Python
Python多线程编程(一):threading模块综述
Apr 05 Python
简析Python的闭包和装饰器
Feb 26 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
python中的格式化输出用法总结
Jul 28 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
pandas 时间格式转换的实现
Jul 06 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
详解Python生成器和基于生成器的协程
Jun 03 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
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
js继承实现方法详解
2016/12/16 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
js实现分页功能
2017/05/24 Javascript
vue注册组件的几种方式总结
2018/03/08 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
python3简单实现微信爬虫
2015/04/09 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
Python turtle库的画笔控制说明
2020/06/28 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
社区交通安全实施方案
2014/03/22 职场文书
安全环保演讲稿
2014/08/28 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
红高粱观后感
2015/06/10 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript