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 30 Python
Python连接mysql数据库的正确姿势
Feb 03 Python
python日志记录模块实例及改进
Feb 12 Python
Django CBV类的用法详解
Jul 26 Python
python实现windows倒计时锁屏功能
Jul 30 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
学Python 3的理由和必要性
Nov 19 Python
django框架单表操作之增删改实例分析
Dec 16 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
Python使用DFA算法过滤内容敏感词
Apr 22 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安装为Apache DSO
2006/10/09 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
php绘制一条直线的方法
2015/01/24 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
express.js中间件说明详解
2019/03/19 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
python redis 删除key脚本的实例
2019/02/19 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
酒吧总经理岗位职责
2013/12/10 职场文书
还款承诺书范文
2014/05/20 职场文书
党员服务承诺书
2014/05/28 职场文书
党员批评与自我批评
2014/10/15 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python
浅谈python数据类型及其操作
2021/05/25 Python
使用CSS连接数据库的方式
2022/02/28 HTML / CSS