PyQt5每天必学之切换按钮


Posted in Python onAugust 20, 2020

切换按钮是QPushButton的特殊模式。它是一个具有两种状态的按钮:按压和未按压。我们通过这两种状态之间的切换来修改其它内容。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

在这个例子中,我们创建三个切换按钮。
他们将控制一个QFrame的背景颜色。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年8月3日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QFrame
from PyQt5.QtGui import QColor

class Example(QWidget):

 def __init__(self):
 super().__init__()

 self.initUI()

 def initUI(self):

 self.col = QColor(0, 0, 0)

 redb = QPushButton('红', self)
 redb.setCheckable(True)
 redb.move(10, 10)

 greenb = QPushButton('绿', self)
 greenb.setCheckable(True)
 greenb.move(10, 60)

 blueb = QPushButton('蓝', self)
 blueb.setCheckable(True)
 blueb.move(10, 110)

 redb.clicked[bool].connect(self.setColor)
 greenb.clicked[bool].connect(self.setColor)
 blueb.clicked[bool].connect(self.setColor)

 self.square = QFrame(self)
 self.square.setGeometry(150, 20, 100, 100)
 self.square.setStyleSheet('QWidget { background-color:%s }' % 
  self.col.name())

 self.setGeometry(300, 300, 280, 170)
 self.setWindowTitle('切换按钮') 
 self.show()

 def setColor(self, pressed):

 source = self.sender()

 if pressed:
  val = 255
 else:
  val = 0

 if source.text() == '红':
  self.col.setRed(val)
 elif source.text() == '绿':
  self.col.setGreen(val)
 else:
  self.col.setBlue(val)

 self.square.setStyleSheet('QFrame { background-color:%s }' % 
  self.col.name())

if __name__ == '__main__':

 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())

在我们的例子中,我们创建了三个切换按钮和一个QWidget。我们设置QWidget的背景色为黑色。切换按钮将切换颜色值的红,绿和蓝色部分。背景颜色将取决于切换。

self.col = QColor(0, 0, 0)

初始颜色值为黑色。

redb = QPushButton('红', self)
redb.setCheckable(True)
 redb.move(10, 10)

创建一个切换按钮。我们通过使用QPushButton 创建一个按钮,并设置其setCheckable()方法为真。

redb.clicked[bool].connect(self.setColor)

当我们点击切换按钮时一个信号连接到我们定义的方法。我们使用一个布尔值操作点击信号。

source = self.sender()

我们得到切换按钮的信息(也就是点击了哪个按钮)。

if source.text() == '红':
  self.col.setRed(val)

如果是红色按钮,我们相应地更新颜色的红色部分。

self.square.setStyleSheet('QFrame { background-color:%s }' % 
 self.col.name())

我们使用样式表来改变背景颜色。

程序执行后

PyQt5每天必学之切换按钮PyQt5每天必学之切换按钮

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python函数参数类型*、**的区别
Apr 11 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
Jul 30 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
Apr 18 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
Python设计模式之状态模式原理与用法详解
Jan 15 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
python列表推导式操作解析
Nov 26 Python
python几种常用功能实现代码实例
Dec 25 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 Python
PyQt5每天必学之滑块控件QSlider
Apr 20 #Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 #Python
PyQt5每天必学之组合框
Apr 20 #Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 #Python
Pyqt实现无边框窗口拖动以及窗口大小改变
Apr 19 #Python
Python利用pandas计算多个CSV文件数据值的实例
Apr 19 #Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
Apr 19 #Python
You might like
关于在php.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
php远程下载类分享
2016/04/13 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
网页打开自动最大化的js代码
2012/08/22 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python字符串的修改方法实例
2019/12/19 Python
Django密码存储策略分析
2020/01/09 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
python时间日期操作方法实例小结
2020/02/06 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
python openssl模块安装及用法
2020/12/06 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
Ref与out有什么不同
2012/11/24 面试题
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
总账会计岗位职责
2014/03/13 职场文书
暑期培训班招生方案
2014/08/26 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
建房合同协议书
2016/03/21 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL