Heim >Backend-Entwicklung >Python-Tutorial >PyQt5 muss jeden Tag die Umschalttaste lernen_python

PyQt5 muss jeden Tag die Umschalttaste lernen_python

不言
不言Original
2018-04-20 14:14:432964Durchsuche

Dieser Artikel stellt hauptsächlich die relevanten Informationen über die Umschalttaste vor, die Sie jeden Tag in PyQt5 lernen müssen. Er hat einen gewissen Referenzwert.

Die Umschalttaste ist eine Besonderheit des QPushButton-Modells. Es handelt sich um einen Knopf mit zwei Zuständen: gedrückt und nicht gedrückt. Wir ändern andere Inhalte, indem wir zwischen diesen beiden Zuständen wechseln.


#!/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_())

In unserem Beispiel haben wir drei Umschalttasten und ein QWidget erstellt. Wir setzen die Hintergrundfarbe des QWidget auf Schwarz. Mit der Umschalttaste können Sie die roten, grünen und blauen Teile des Farbwerts umschalten. Die Hintergrundfarbe hängt vom Umschalter ab.

self.col = QColor(0, 0, 0)

Der anfängliche Farbwert ist Schwarz.

redb = QPushButton('红', self)
redb.setCheckable(True)
 redb.move(10, 10)

Erstellen Sie eine Umschalttaste. Wir erstellen eine Schaltfläche mit QPushButton und setzen ihre setCheckable()-Methode auf true.

redb.clicked[bool].connect(self.setColor)

Wenn wir auf die Umschalttaste klicken, wird ein Signal mit der von uns definierten Methode verbunden. Wir bedienen das Klicksignal mit einem booleschen Wert.

 source = self.sender()

Wir erhalten die Informationen über den Umschaltknopf (also welcher Knopf angeklickt wurde).

if source.text() == '红':
      self.col.setRed(val)

Wenn es sich um einen roten Knopf handelt, aktualisieren wir den roten Teil der Farbe entsprechend.

self.square.setStyleSheet('QFrame { background-color:%s }' % 
    self.col.name())

Wir verwenden ein Stylesheet, um die Hintergrundfarbe zu ändern.

Nachdem das Programm ausgeführt wurde

PyQt5 muss jeden Tag die Umschalttaste lernen_pythonPyQt5 muss jeden Tag die Umschalttaste lernen_python

Verwandte Empfehlungen:

PyQt5 muss jedes Mal die Layoutverwaltung erlernen Tag

Kästchen mit Beschriftungen markieren, die Sie jeden Tag in PyQt5 lernen müssen

Erstellen Sie einen Fensterzentrierungseffekt, den Sie jeden Tag in PyQt5 lernen müssen

Das obige ist der detaillierte Inhalt vonPyQt5 muss jeden Tag die Umschalttaste lernen_python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn