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脚本实现分析dns日志并对受访域名排行
Sep 18 Python
用实例分析Python中method的参数传递过程
Apr 02 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
深入探究Django中的Session与Cookie
Jul 30 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
Python之list对应元素求和的方法
Jun 28 Python
Python实现的tcp端口检测操作示例
Jul 24 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
pytorch动态网络以及权重共享实例
Jan 06 Python
python如何通过pyqt5实现进度条
Jan 20 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 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
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
php判断访问IP的方法
2015/06/19 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
python绘图库Matplotlib的安装
2014/07/03 Python
Python映射拆分操作符用法实例
2015/05/19 Python
Python中splitlines()方法的使用简介
2015/05/20 Python
python列表的常用操作方法小结
2016/05/21 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
使用python实现飞机大战游戏
2020/03/23 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
python定义类的简单用法
2020/07/24 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
北大自主招生自荐信
2015/03/04 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
JAVA springCloud项目搭建流程
2022/05/11 Java/Android