• PyQT5-QPushButton切换按钮


     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 
    43         # Frame
    44         self.setGeometry(300, 300, 300, 200)
    45         self.setWindowTitle("toggle button")
    46         self.show()
    47 
    48     def setColor(self, pressed):
    49         """
    50         自定义槽函数
    51         :param pressed: 鼠标被按下的状态
    52         :return:
    53         """
    54         # 得到切换按钮的信息,哪一个信号被触发了
    55         source = self.sender()
    56         # 当按下按钮
    57         if pressed:
    58             val = 255
    59         else:
    60             val = 0
    61         # 判断这个信号的文本内容
    62         if source.text() == 'Red':
    63             self.col.setRed(val)
    64         elif source.text() == 'Green':
    65             self.col.setGreen(val)
    66         else:
    67             self.col.setBlue(val)
    68         # 更改QFrame的样式风格,设置背景为特定的颜色
    69         color = self.col.name()     # 样式的背景色编码
    70         self.square.setStyleSheet("QFrame {background-color:%s}" % self.col.name())
    71 
    72 
    73         print('ok')
    74 
    75 
    76 if __name__ == '__main__':
    77     app = QApplication(sys.argv)
    78     ex = Example()
    79     sys.exit(app.exec_())
  • 相关阅读:
    mysql 语法
    mycat 配置简介
    redis sentinel 配置
    Spark SQL 读到的记录数与 hive 读到的不一致
    HDP3.1 中 YRAN 和 MR2 的内存大小配置的计算方式
    在 windows 下搭建 IDEA + Spark 连接 Hive 的环境
    HDP3.1 中配置 YARN 的 timeline server 使用外部的 HBase
    大规模使用 Apache Kafka 的20个最佳实践
    卸载mac版本的GlobalProtect
    js解决约瑟夫问题
  • 原文地址:https://www.cnblogs.com/demo-deng/p/9990090.html
Copyright © 2020-2023  润新知