Maison > développement back-end > Tutoriel Python > PyQt5 doit apprendre le bouton de commutation tous les jours_python

PyQt5 doit apprendre le bouton de commutation tous les jours_python

不言
Libérer: 2018-04-20 14:14:43
original
2961 Les gens l'ont consulté

Cet article présente principalement en détail les informations pertinentes sur le bouton de commutation que vous devez apprendre chaque jour dans PyQt5. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Le bouton de commutation est une fonctionnalité spéciale. du modèle QPushButton. C'est un bouton à deux états : enfoncé et non enfoncé. Nous modifions d'autres contenus en basculant entre ces deux états.


#!/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_())
Copier après la connexion

Dans notre exemple, nous avons créé trois boutons bascule et un QWidget. Nous définissons la couleur d'arrière-plan du QWidget sur noir. Le bouton bascule fera basculer les parties rouge, verte et bleue de la valeur de couleur. La couleur d'arrière-plan dépendra de la bascule.

self.col = QColor(0, 0, 0)
Copier après la connexion

La valeur de couleur initiale est le noir.

redb = QPushButton('红', self)
redb.setCheckable(True)
 redb.move(10, 10)
Copier après la connexion

Créez un bouton bascule. Nous créons un bouton en utilisant QPushButton et définissons sa méthode setCheckable() sur true.

redb.clicked[bool].connect(self.setColor)
Copier après la connexion

Lorsque nous cliquons sur le bouton bascule, un signal est connecté à la méthode que nous avons définie. Nous exploitons le signal de clic en utilisant une valeur booléenne.

 source = self.sender()
Copier après la connexion

Nous obtenons les informations sur le bouton bascule (c'est-à-dire sur quel bouton a été cliqué).

if source.text() == '红':
      self.col.setRed(val)
Copier après la connexion

S'il s'agit d'un bouton rouge, nous mettons à jour la partie rouge de la couleur en conséquence.

self.square.setStyleSheet('QFrame { background-color:%s }' % 
    self.col.name())
Copier après la connexion

Nous utilisons une feuille de style pour changer la couleur de fond.

Une fois le programme exécuté

PyQt5 doit apprendre le bouton de commutation tous les jours_pythonPyQt5 doit apprendre le bouton de commutation tous les jours_python

Recommandations associées :

Gestion de la mise en page PyQt5 que vous devez apprendre tous les jours

Cocher les cases avec les étiquettes que vous devez apprendre tous les jours dans PyQt5

Créer des effets de centrage de fenêtre que vous devez apprendre tous les jours dans PyQt5

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal