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中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 Python
python与C互相调用的方法详解
Jul 14 Python
Python迭代器定义与简单用法分析
Apr 30 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
详解python中的index函数用法
Aug 06 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
Jan 10 Python
关于python 跨域处理方式详解
Mar 28 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
python如何求圆的面积
Jul 01 Python
如何基于Python pygame实现动画跑马灯
Nov 18 Python
Python 读写 Matlab Mat 格式数据的操作
May 19 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 面向对象 PHP5 中的常量
2010/05/05 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
10个php函数实用却不常见
2015/10/13 PHP
php 实现进制相互转换
2016/04/07 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
Python语言的12个基础知识点小结
2014/07/10 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
对python多线程与global变量详解
2018/11/09 Python
24式加速你的Python(小结)
2019/06/13 Python
python实现大文件分割与合并
2019/07/22 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
python根据文本生成词云图代码实例
2019/11/15 Python
Python list运算操作代码实例解析
2020/01/20 Python
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
大学生四个方面的自我评价
2013/09/19 职场文书
土建施工员岗位职责
2014/07/16 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
nginx配置限速限流基于内置模块
2022/05/02 Servers
js判断两个数组相等的5种方法
2022/05/06 Javascript