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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
Python下Fabric的简单部署方法
Jul 14 Python
python实现字符串中字符分类及个数统计
Sep 28 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
Nov 23 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
python+selenium select下拉选择框定位处理方法
Aug 24 Python
python模块和包的应用BASE_PATH使用解析
Dec 14 Python
pyqt5中动画的使用详解
Apr 01 Python
Python基于codecs模块实现文件读写案例解析
May 11 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
Django后端按照日期查询的方法教程
Feb 28 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
用户的详细注册和判断
2006/10/09 PHP
php 变量定义方法
2009/06/14 PHP
一个典型的PHP分页实例代码分享
2011/07/28 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
zend framework重定向方法小结
2016/05/28 PHP
php时间函数用法分析
2016/05/28 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
不同浏览器的怪癖小结
2010/07/11 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
python生成随机密码或随机字符串的方法
2015/07/03 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
Python 项目转化为so文件实例
2019/12/23 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
亿企通软件测试面试题
2012/04/10 面试题
《天游峰的扫路人》教学反思
2014/04/25 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书