1. """
  2. QPushButton:切换按钮就是QPsuhButton的一种特殊模式,他有两种状态:按下和未按下。我们在点击的时候切换两种状态,有很多场景会用到这个功能
  3. Author:dengyexun
  4. DateTime:2018.11.20
  5. """
  6. from PyQt5.QtWidgets import QWidget, QPushButton, QFrame, QApplication
  7. from PyQt5.QtGui import QColor
  8. import sys
  9.  
  10. class Example(QWidget):
  11. def __init__(self):
  12. super().__init__()
  13.  
  14. self.initGUI()
  15.  
  16. def initGUI(self):
  17. # 功能区
  18. self.col = QColor(0, 0, 0) # 颜色句柄
  19. # 初始化pushButton
  20. redb = QPushButton('Red', self)
  21. redb.setCheckable(True)
  22. redb.move(60, 60)
  23. # 槽与信号连接.当redb被点击时,传入一个bool值给setColor的pressed参数
  24. redb.clicked[bool].connect(self.setColor)
  25.  
  26. greenb = QPushButton('Green', self)
  27. greenb.setCheckable(True)
  28. greenb.move(60, 80)
  29. greenb.clicked[bool].connect(self.setColor)
  30.  
  31. blueb = QPushButton('Blue', self)
  32. blueb.setCheckable(True)
  33. blueb.move(60, 100)
  34. blueb.clicked[bool].connect(self.setColor)
  35.  
  36. # QFrame对象
  37. self.square = QFrame(self)
  38. self.square.setGeometry(110,110,200,200)
  39. # 更改QWidget的样式风格
  40. self.square.setStyleSheet("QWidget {backgroud-color:%s}" % self.col.name())
  41.  
  42. # Frame
  43. self.setGeometry(300, 300, 300, 200)
  44. self.setWindowTitle("toggle button")
  45. self.show()
  46.  
  47. def setColor(self, pressed):
  48. """
  49. 自定义槽函数
  50. :param pressed: 鼠标被按下的状态
  51. :return:
  52. """
  53. # 得到切换按钮的信息,哪一个信号被触发了
  54. source = self.sender()
  55. # 当按下按钮
  56. if pressed:
  57. val = 255
  58. else:
  59. val = 0
  60. # 判断这个信号的文本内容
  61. if source.text() == 'Red':
  62. self.col.setRed(val)
  63. elif source.text() == 'Green':
  64. self.col.setGreen(val)
  65. else:
  66. self.col.setBlue(val)
  67. # 更改QFrame的样式风格,设置背景为特定的颜色
  68. color = self.col.name() # 样式的背景色编码
  69. self.square.setStyleSheet("QFrame {background-color:%s}" % self.col.name())
  70.  
  71. print('ok')
  72.  
  73. if __name__ == '__main__':
  74. app = QApplication(sys.argv)
  75. ex = Example()
  76. sys.exit(app.exec_())

PyQT5-QPushButton切换按钮的更多相关文章

  1. C# PDF Page操作——设置页面切换按钮

    概述 在以下示例中,将介绍在PDF文档页面设置页面切换按钮的方法.示例中将页面切换按钮的添加分为了两种情况,一种是设置按钮跳转到首页.下页.上页或者最后一页,另一种是设置按钮跳转到指定页面.两种方法适 ...

  2. 纯css实现checkbox开关切换按钮

    我们都知道 checkbox 标签默认样式 实在是太low了,故对CheckBox美化很有必要. 现提供两种方式对其进行美化. 方法一 <div class="switch-wrap ...

  3. Egret 中实现3种状态切换按钮

    一.游戏中的常用3种状态按钮 Egret种提供了2种状态切换的按钮ToggleButton. 但是在游戏中常用到3种状态的按钮,比如任务系统的领取.已领取.未领取. 比如下图中宝箱的打开.浏览后打开. ...

  4. 尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框

    尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框 近期正在逐步摸索学习React的用法,尝试着写几个通用型的组件,整体项目还是根据webpack+react+css-me ...

  5. C# PDF Page操作——设置页面切换按钮 C# 添加、读取Word脚注尾注 C#为什么不能像C/C++一样的支持函数只读传参 web 给大家分享一个好玩的东西,也许你那块就用的到

    C# PDF Page操作——设置页面切换按钮   概述 在以下示例中,将介绍在PDF文档页面设置页面切换按钮的方法.示例中将页面切换按钮的添加分为了两种情况,一种是设置按钮跳转到首页.下页.上页或者 ...

  6. NX二次开发-获取切换按钮的当前状态UF_MB_ask_toggle_state

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  7. pyqt5界面切换

    #主要的思路就是创建两个frame(如果有两个以上同理)使用setVisible()函数显示或者隐藏frame 参数是bool值import sys from PyQt5.QtWidgets impo ...

  8. bootstrap切换按钮点击后显示的颜色

    点击按钮后将按钮类库切换为值为btn-success ·· test ·· jquery code ·· $(".tag-checkbox").toggleClass(" ...

  9. [android] 切换按钮-自定义控件

    准备两张图片,按钮背景,上面的小开关 创建一个类MyToggleBtn,继承View 实现三个构造方法,传递上下文, 实现构造方法,传递Context对象,在java代码中实例化时主要使用这个 实现构 ...

随机推荐

  1. SpringBoot------thymeleaf的使用

    1.pom.xml添加相应依赖 <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  2. 8 -- 深入使用Spring -- 1...4 重写占位符配置器

    8.1.5 重写占位符配置器 (PropertyOverrideConfigurer) PropertyOverrideConfigurer是Spring提供的另一个容器后处理器.PropertyOv ...

  3. ios开发之--tableview单选/多选实现(非tableview的editing状态)及默认选中

    实现思路比较简单,这里仅做记录: 直接上代码: 1,实现didSelectRowAtIndexPath方法 -(void)tableView:(UITableView *)tableView didS ...

  4. ios开发之--理解NSStringDrawingOptions每个选项的用法与意义

    typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) { NSStringDrawingUsesLineFragmentOrigin = < ...

  5. CentOS7图形界面启动报错unable to connect to X server

    以前还可以正常启动图形界面,这次启动失败,报错unable to connect to X server 使用的是oracle用户,因为我是在oracle用户下创建的oracle数据库等 解决办法: ...

  6. Kali linux 试用:dnsenum

    dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典件猜测可能存在的域名,以及对一个网段进行反向查询.它可以查询网站的主机地址信息.域名服务器.mx record(函件交换记录),在域 ...

  7. [XPath] XPath 与 lxml (三)XPath 坐标轴

    本章我们将沿用上一章的 XML 示例文档. XPath 坐标轴 坐标轴用于定义当对当前节点的节点集合. 坐标轴名称 含义 ancestor 选取当前节点的所有先辈元素及根节点. ancestor-or ...

  8. JavaScript的格式--从格式做起,做最严谨的工程师

    1.JavaScript的格式: JavaScript区分大小写: JavaScript脚本程序须嵌入在HTML文件中: JavaScript脚本程序中不能包含HTML标记代码:(双引号) 每行写一条 ...

  9. 基础知识《零》---一张图读懂JDK,JRE,JVM的区别与联系

  10. LeetCode 29 Divide Two Integers (不使用乘法,除法,求模计算两个数的除法)

    题目链接: https://leetcode.com/problems/divide-two-integers/?tab=Description   Problem :不使用乘法,除法,求模计算两个数 ...