zoukankan      html  css  js  c++  java
  • 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_())
  • 相关阅读:
    计算JensenShannon Divergence距离的方法
    perl 取出正则表达式的匹配位置
    QQ客服左右提示
    JS获取DropDownList的value值与text值
    一个大文件上传组件RadUpLoad(带进度条时间显示)
    asp.net不同后辍名的文件
    RowDataBound事件 .
    当sql2000和sql2005同时装时,因为都用了1433的端口号,可能会导致连接失败,这里讲asp.net 的连接方法 .
    CSS圆角
    ASP.NET把图片存入数据库和使用文件流读取显示(转)
  • 原文地址:https://www.cnblogs.com/demo-deng/p/9990090.html
Copyright © 2011-2022 走看看