PyQt5每天必学之切换按钮

yipeiwu_com6年前Python基础

切换按钮是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())

我们使用样式表来改变背景颜色。

程序执行后

这里写图片描述 这里写图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python3中eval函数用法使用简介

python中eval函数的用法十分的灵活,这里主要介绍一下它的原理和一些使用的场合。 下面是从python的官方文档中的解释:   The arguments ar...

PIL图像处理模块paste方法简单使用详解

PIL图像处理模块paste方法简单使用详解

python2中提供了PIL基础的图像数据出来模块,在python3中更名为了pillow模块,名字虽然发生了改变,但是提供的方法和功能都是一样的,对于日常基础的图像数据处理分析来说是足...

python实现朴素贝叶斯分类器

本文用的是sciki-learn库的iris数据集进行测试。用的模型也是最简单的,就是用贝叶斯定理P(A|B) = P(B|A)*P(A)/P(B),计算每个类别在样本中概率(代码中是p...

Python使用paramiko操作linux的方法讲解

paramiko介绍 paramiko是一个基于python编写的、使用ssh协议的模块,跟xshell和xftp功能类似,支持加密与认证,可以上传下载和访问服务器的文件。 可以利用pa...

讲解Python中的标识运算符

讲解Python中的标识运算符

 下表列出了所有Python语言支持的标识运算符。 示例: 试试下面的例子就明白了所有Python编程语言提供的标识运算符: #!/usr/bin/python a =...