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实现动态添加类的属性或成员函数的解决方法
Jul 16 Python
Python中的列表知识点汇总
Apr 14 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
Python探索之URL Dispatcher实例详解
Oct 28 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
python数据挖掘需要学的内容
Jun 23 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
pandas统计重复值次数的方法实现
Feb 20 Python
Python xlwings插入Excel图片的实现方法
Feb 26 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
提问的智慧
2006/10/09 PHP
php开启openssl的方法
2014/05/15 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
js判断密码强度的方法
2020/03/18 Javascript
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
Python远程linux执行命令实现
2020/11/11 Python
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
汉语言文学毕业生求职信
2013/10/01 职场文书
应届大学生自荐书
2014/06/17 职场文书
数学教育专业求职信
2014/07/22 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
教师学期末个人总结
2015/02/13 职场文书
红色故事汇观后感
2015/06/18 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
环境卫生标语
2015/08/03 职场文书
个人向公司借款协议书
2016/03/19 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书