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实现的简单发送邮件脚本分享
Nov 07 Python
利用python为运维人员写一个监控脚本
Mar 25 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
Jul 19 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
Python3 tkinter 实现文件读取及保存功能
Sep 12 Python
Django模板导入母版继承和自定义返回Html片段过程解析
Sep 18 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
Feb 29 Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 Python
pandas统计重复值次数的方法实现
Feb 20 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python机器学习实战之K均值聚类
2017/12/20 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
python实现批量修改文件名
2020/03/23 Python
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
大学总结自我鉴定
2014/01/18 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
体育专业自荐书
2014/05/29 职场文书
模具专业求职信
2014/06/26 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS