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 15 Python
django缓存配置的几种方法详解
Jul 16 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
python实现websocket的客户端压力测试
Jun 25 Python
pytorch实现onehot编码转为普通label标签
Jan 02 Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 Python
python实现FTP循环上传文件
Mar 20 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
Pycharm调试程序技巧小结
Aug 08 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
python 标准库原理与用法详解之os.path篇
Oct 24 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
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
我的论坛源代码(八)
2006/10/09 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
php时间函数用法分析
2016/05/28 PHP
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
Python Gitlab Api 使用方法
2019/08/28 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
上课迟到检讨书
2014/01/19 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
文秘应届生求职信
2014/07/05 职场文书
2019公司管理制度
2019/04/19 职场文书