学习《PyQt4入门指南 PDF中文版.pdf 》笔记

PyQt5没有开关按钮部件。但是我们可以使用在特殊状态下的QPushButton部件来创建开关按钮。而所谓的开关的按钮就是一个具有按下和未按下两种状态的普通按钮。用户可以通过点击按钮来切换其开或关状态。在一些情况下,这个特性会非常好用。

<span style="font-size:12px;">#!/usr/bin/python
# togglebutton.pyfrom PyQt5.QtWidgets import QApplication, QPushButton, QStyleFactory
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QColorclass ToggleButton(QtWidgets.QWidget):def __init__(self, parent= None):QtWidgets.QWidget.__init__(self)self.color = QColor(0, 0, 0)self.setGeometry(300, 300, 280, 170)self.setWindowTitle('ToggleButton')self.red = QPushButton('Red',  self)self.red.setCheckable(True)self.red.move(10, 10)self.red.clicked.connect(self.setRed)self.green = QPushButton('Green',  self)self.green.setCheckable(True)self.green.move(10, 60)self.green.clicked.connect(self.setGreen)self.blue = QPushButton('Blue',  self)self.blue.setCheckable(True)self.blue.move(10, 110)self.blue.clicked.connect(self.setBlue)self.square = QtWidgets.QWidget(self)self.square.setGeometry(150, 20, 100, 100)self.square.setStyleSheet('QWidget{background-color:%s}'%self.color.name())QApplication.setStyle(QStyleFactory.create('cleanlooks'))def setRed(self):if self.red.isChecked():self.color.setRed(255)else:self.color.setRed(0)self.square.setStyleSheet('QWidget{background-color:%s}'%self.color.name())def setGreen(self):if self.green.isChecked():self.color.setGreen(255)else:self.color.setGreen(0)self.square.setStyleSheet('QWidget{background-color:%s}'%self.color.name())def setBlue(self):if self.blue.isChecked():self.color.setBlue(255)else:self.color.setBlue(0)self.square.setStyleSheet('QWidget{background-color:%s}'%self.color.name())if __name__ == "__main__":import sysapp = QApplication(sys.argv)qb = ToggleButton()qb.show()sys.exit(app.exec_())</span>

在这个例子中,我们创建了三个开关按钮和一个QWidget部件,并将QWidget部件的背景颜色设置为黑色。用户通过开关按钮从红、绿、蓝选择出QWidget部件的背景颜色组合。若开关按钮被按下,则其对应的颜色即被选中。

self.color= QColor(0, 0, 0)

这行语句用来设置初始颜色,红绿蓝三种颜色值均为0时的颜色为黑色。

self.red= QPushButton('Red',  self)

self.red.setCheckable(True)

通过创建一个QPushButton并将其设置为可被选择的,即得到我们想要的开关按钮。

self.red.clicked.connect(self.setRed)

我们将red开关按钮的clicked()信号和自定义的setRed()方法连接起来。

QApplication.setStyle(QStyleFactory.create('cleanlooks'))

         该行语句用来将应用程序的外观样式设置为cleanlooks的。之所以这样做事因为Linux系统下的默认样式存在一个小的设计缺陷,该缺陷使用用户无法快速的分辨出开关按钮的两种状态。而采用cleanlooks样式外观的表现会好些(书上说的,具体不知道真的假的。)。

ifself.red.isChecked():

self.color.setRed(255)

else:

self.color.setRed(0)

我们使用if语句来判断开关按钮的状态并设置对应的颜色值。

self.square.setStyleSheet('QWidget{background-color:%s}'%self.color.name())

使用setStyleSheet()方法改变QWidget部件的背景色。

PyQt5:ToggleButton开关按钮(24)相关推荐

  1. ToggleButton开关按钮

    转帖请注明本文出自weimeig的博客(https://blog.csdn.net/weimeig/article/details/79663037),请尊重他人的辛勤劳动成果,谢谢 应朋友们反馈的A ...

  2. Android 基础知识4-3.6 ToggleButton(开关按钮)Switch(开关)详解

    一.ToggleButton(开关按钮) 1.1.简介 ToggleButton 类似开关有开和关两种状态,不同的状态下可以有不同的文本.         public class ToggleBut ...

  3. UI控件之ToggleButton(开关按钮)和Switch(开关)

    (一)概述 本节给大家介绍ToggleButton(开关按钮)和Switch(开关),因为比较简单就合在一起说了.其实,二者都是开关控件,只是后者需要在Android4.0以后才可以使用,所以Andr ...

  4. Android(二十):ToggleButton 开关按钮 开关 Switch

    展示 目录 源码 Resources/drawable/thumb_selctor.xml <?xml version="1.0" encoding="utf-8& ...

  5. Android 应用开发(43)---开关按钮ToggleButton和开关Switch

    开关按钮ToggleButton和开关Switch 5.0以前的ToggleButton和Switch: 5.0版本: 1.核心属性讲解: 1)ToggleButton(开关按钮) 可供我们设置的属性 ...

  6. Android开发学习笔记:浅谈ToggleButton

    ToggleButton(开关按钮)是Android系统中比较简单的一个组件,是一个具有选中和未选择状态双状态的按钮,并且需要为不同的状态设置不同的显示文本. ToggleButton常用的XML属性 ...

  7. 安卓开发中ToggleButton按钮的使用

    ToggleButton(开关按钮)是Android系统中比较简单的一个组件,是一个具有选中和未选择状态双状态的按钮,并且需要为不同的状态设置不同的显示文本.下面以一个简单的控制室内设备的开关为例来介 ...

  8. togglebutton用法 java_ToggleButton 基本使用方法

    ToggleButton(开关按钮)是一个具有选中和未选择状态双状态的按钮,并且需要为不同的状态设置不同的显示文本. 例子一: 实现打开关闭功能. activity_main.xml android: ...

  9. Programming with gtkmm 3

    1. 序言 1.1. 本书 1.2. gtkmm 2. 安装 2.1. 依赖关系 2.2. Unix 和 Linux 2.3. Microsoft Windows 3. 基础 3.1. 简单的例子 3 ...

最新文章

  1. PageHelper 在 Spring Boot + MyBatis 中合理且规范的使用方法
  2. Weblogic项目部署教程
  3. [armv9]-ARMV8/ARMV9安全架构介绍(ARMv9 CCA)
  4. MySQL带BETWEEN AND关键字的查询
  5. scratch跳一跳游戏脚本_超级丛林跳游戏下载-超级丛林跳最新版下载v1.01.5026 安卓版...
  6. Ubuntu 必装软件及安装教程
  7. vue-cli 打包
  8. Newbe.Claptrap-一套以“事件溯源”和“Actor模式”作为基本理论的服务端开发框架...
  9. .net 微服务实践
  10. 阻尼衰减曲线用python_高阻尼橡胶支座隔震原理
  11. C++学习笔记系列之继承多态
  12. 服务器红帽操作系统安装,pxe无人值守安装 红帽操作系统
  13. 如何理解Beta分布和Dirichlet分布?
  14. Linux常用软件包
  15. SQLServer中如何高效解析JSON格式数据
  16. 2021年春季PAT乙级题解(C语言)
  17. 下载iconfont图标
  18. 漏洞篇(SQL注入一)
  19. Android无限流量统计,无限流量套餐国内也有 但并没什么用
  20. 【网络编程实践】2.4.2 muduo库安装与 procmon 编译

热门文章

  1. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion
  2. 保监会就交强险费率浮动征询专家意见 凸显3焦点
  3. 抖音创作规范_干货:抖音内容规范,运营抖音的十五条经验!
  4. 一年站长经历后的感悟
  5. 关于从3维空间进入4维空间的想法
  6. 关系型数据库是什么?
  7. 985助理教授与二本教授哪个水平高?
  8. matlab 统计数组频数_matlab统计 频数、频率和累积频率
  9. 涅槃重生,力荐大型分布式手册,凤凰架构让你浴火成神,良心分享
  10. 聚苯乙烯微球为成孔模板制备多孔PI/HMSNs复合膜/交联氨基聚苯乙烯微球/羧基聚苯乙烯微球