python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例


Posted in Python onMarch 06, 2020

PyQt5滚动条控件QScrollBar简介

可以看到,前面介绍的几个窗口控件的共同点是新建一些窗口来装载更多的控件,而QScrollBar提供了另一种思路:这个控件提供水平的或垂直的滚动条,这样可以扩大当前窗口的有效装载面积,从而装载更多的控件

QScrollBar类中常用的信号

信号 含义
valueChanged 当滑动条的值改变发射此信号
sliderMoved 当用户拖动滑块时发射此信号

QScrollBar的使用实例

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

class Example(QWidget):
  def __init__(self):
    super(Example, self).__init__()
    self.initUI()

  def initUI(self):
    #水平布局
    HBox=QHBoxLayout()

    #创建标签以及显示文本,设置字体类型和字号大小
    self.l1=QLabel('拖动滑块改变颜色')
    self.l1.setFont(QFont('Arial',16))

    #添加到布局中
    HBox.addWidget(self.l1)

    #创建滑块,设置最大值,滑动信号关联到槽函数
    self.s1=QScrollBar()
    self.s1.setMaximum(255)
    self.s1.sliderMoved.connect(self.sliderval)

    self.s2=QScrollBar()
    self.s2.setMaximum(255)
    self.s2.sliderMoved.connect(self.sliderval)

    self.s3=QScrollBar()
    self.s3.setMaximum(255)
    self.s3.sliderMoved.connect(self.sliderval)

    #添加部件到布局中
    HBox.addWidget(self.s1)
    HBox.addWidget(self.s2)
    HBox.addWidget(self.s3)

    #初始化位置以及初始窗口大小,设置整体布局方式和标题
    self.setGeometry(300,300,300,200)
    self.setWindowTitle('QScrollBar例子')
    self.setLayout(HBox)

  def sliderval(self):
    #输出当前三个滑块位置所代表的值
    print(self.s1.value(),self.s2.value(),self.s3.value())

    #实例化调色板对象,设置颜色为三个滑块的值
    palette=QPalette()
    c=QColor(self.s1.value(),self.s2.value(),self.s3.value())
    palette.setColor(QPalette.Foreground,c)

    #设置标签的调色板,加载属性
    self.l1.setPalette(palette)
if __name__ == '__main__':
  app=QApplication(sys.argv)
  demo=Example()
  demo.show()
  sys.exit(app.exec_())

运行效果图如下

python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例

代码解析

在这个例子中,设置了三个滑动条来控制标签中显示的文字的字体颜色的RGB值

当滑块滑动时,将sliderMoved信号与槽函数连接起来

self.s3.sliderMoved.connect(self.sliderval)

本文主要讲解了PyQt5滚动条控件QScrollBar详细使用方法与实例,更多关于PyQt5控件使用知识请查看下面的相关链接

Python 相关文章推荐
利用Python的Django框架生成PDF文件的教程
Jul 22 Python
Python入门教程之运算符与控制流
Aug 17 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
Python之列表实现栈的工作功能
Jan 28 Python
django 消息框架 message使用详解
Jul 22 Python
Python3 批量扫描端口的例子
Jul 25 Python
详细介绍Python进度条tqdm的使用
Jul 31 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
使用 Python 写一个简易的抽奖程序
Dec 08 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
基于python实现检索标记敏感词并输出
May 07 Python
python字典的值可以修改吗
Jun 29 Python
Python object类中的特殊方法代码讲解
Mar 06 #Python
python+Selenium自动化测试——输入,点击操作
Mar 06 #Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 #Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 #Python
python解析xml文件方式(解析、更新、写入)
Mar 05 #Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 #Python
python批量替换文件名中的共同字符实例
Mar 05 #Python
You might like
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
Vuex的初探与实战小结
2018/11/26 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
Python 描述符(Descriptor)入门
2016/11/20 Python
Python创建字典的八种方式
2019/02/27 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
使用python实现画AR模型时序图
2019/11/20 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
关于幼儿的自我评价
2013/12/18 职场文书
学生实习介绍信
2014/01/15 职场文书
求职简历自我评价范例
2014/03/12 职场文书
青涩记忆观后感
2015/06/18 职场文书
退伍军人感言
2015/08/01 职场文书
学生会工作感言
2015/08/07 职场文书