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 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
python中合并两个文本文件并按照姓名首字母排序的例子
Apr 25 Python
Python获取linux主机ip的简单实现方法
Apr 18 Python
Tensorflow 查看变量的值方法
Jun 14 Python
Python中的Django基本命令实例详解
Jul 15 Python
TensorFlow查看输入节点和输出节点名称方式
Jan 04 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
python 比较字典value的最大值的几种方法
Apr 17 Python
win10从零安装配置pytorch全过程图文详解
May 08 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
May 22 Python
Python bisect模块原理及常见实例
Jun 17 Python
python如何实现递归转非递归
Feb 25 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
drupal 代码实现URL重写
2011/05/04 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
json跟xml的对比分析
2008/06/10 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
Python subprocess模块学习总结
2014/03/13 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
python开头的coding设置方法
2019/08/08 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
python中for in的用法详解
2020/04/17 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
士力架广告词
2014/03/20 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
药剂专业求职信
2014/06/20 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
语文教师个人工作总结
2015/02/06 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技