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中内置的itertools模块
Apr 29 Python
Python中functools模块的常用函数解析
Jun 30 Python
Python切换pip安装源的方法详解
Nov 18 Python
Python中文件I/O高效操作处理的技巧分享
Feb 04 Python
Python之str操作方法(详解)
Jun 19 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
python实现共轭梯度法
Jul 03 Python
对python中不同模块(函数、类、变量)的调用详解
Jul 16 Python
django有哪些好处和优点
Sep 01 Python
django跳转页面传参的实现
Sep 17 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
python自动化之如何利用allure生成测试报告
May 02 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
c#中的实现php中的preg_replace
2009/12/21 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
简单了解Python3里的一些新特性
2019/07/13 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
行政办公室岗位职责
2014/03/18 职场文书
yy司仪主持词
2014/03/22 职场文书
分家协议书
2014/04/21 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
Tomcat用户管理的优化配置详解
2022/03/31 Servers