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运算符重载详解及实例代码
Mar 07 Python
python计算auc指标实例
Jul 13 Python
Python实现的矩阵类实例
Aug 22 Python
利用Python进行异常值分析实例代码
Dec 07 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
Python测试人员需要掌握的知识
Feb 08 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
Python元组常见操作示例
Feb 19 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
pycharm显示远程图片的实现
Nov 04 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 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中html_entity_decode实现HTML实体转义
2018/06/13 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
谈谈如何手动释放Python的内存
2016/12/17 Python
python去掉行尾的换行符方法
2017/01/04 Python
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
法学研究生自我鉴定范文
2013/12/04 职场文书
跑操口号
2014/06/12 职场文书
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL
全网非常详细的pytest配置文件
2022/07/15 Python