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写入mysql中datetime类型遇到的问题
Jun 21 Python
Sanic框架蓝图用法实例分析
Jul 17 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
Python输出\u编码将其转换成中文的实例
Dec 15 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
Feb 20 Python
python模拟菜刀反弹shell绕过限制【推荐】
Jun 25 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
Python Django简单实现session登录注销过程详解
Aug 06 Python
简单介绍python封装的基本知识
Aug 10 Python
python sqlite的Row对象操作示例
Sep 11 Python
python3实现用turtle模块画一棵随机樱花树
Nov 21 Python
详解anaconda安装步骤
Nov 23 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常用表单验证类用法实例
2015/06/18 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
Python基础学习之函数方法实例详解
2019/06/18 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
个性化皮包、小袋、生活配件:Mon Purse
2019/03/26 全球购物
公司财务总监岗位职责
2013/12/14 职场文书
打架检讨书50字
2014/01/11 职场文书
男方父母证婚词
2014/01/12 职场文书
铁路个人事迹材料
2014/01/30 职场文书
新春联欢会主持词
2014/03/24 职场文书
应届生求职信
2014/05/31 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
工作经历证明范本
2015/06/15 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python