Heim  >  Artikel  >  Backend-Entwicklung  >  PyQt5 muss lernen, das Fenster jeden Tag zu schließen

PyQt5 muss lernen, das Fenster jeden Tag zu schließen

不言
不言Original
2018-04-19 11:26:0010639Durchsuche

Dieser Artikel stellt hauptsächlich die Schließfenster vor, die Sie jeden Tag in PyQt5 lernen müssen. Er hat einen gewissen Referenzwert.

Der einfachste Weg, ein Fenster zu schließen, ist Klicken Sie auf das x Markieren Sie in der Titelleiste. Im folgenden Beispiel zeigen wir jedoch, wie man das Schließen des Fensters programmgesteuert steuert. Wir werden die Signale/Slots von PyQt5 verwenden.

Das Folgende ist die Konstruktionsmethode des QPushButton-Steuerelements, das wir im Beispiel verwendet haben.

QPushButton(string text, QWidget parent = None)

Der Textparameter ist der Text, der auf der Schaltfläche angezeigt werden soll. parent Wo soll das Schaltflächensteuerelement platziert werden? Im folgenden Beispiel fügen wir das Schaltflächensteuerelement in ein QWidget ein. Die Fenstersteuerelemente einer Anwendung können eine hierarchische Struktur bilden. Auf dieser Ebene verfügen die meisten Steuerelemente über übergeordnete Steuerelemente, und Steuerelemente ohne übergeordnetes Steuerelement sind Fenster der obersten Ebene.

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

这个程序创建一个退出按钮。当我们按下按钮,应用程序将终止。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年7月29日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtCore import QCoreApplication

class Example(QWidget):

 def __init__(self):
  super().__init__()

  self.initUI()

 def initUI(self):

  btn = QPushButton('退出', self)
  btn.clicked.connect(QCoreApplication.instance().quit)
  btn.resize(btn.sizeHint())
  btn.move(50, 50)

  self.setGeometry(300, 300, 300, 220)
  self.setWindowTitle('退出按钮')  
  self.show()

if __name__ == '__main__':

 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())

In diesem Beispiel erstellen wir einen Exit-Button. Wenn auf die Schaltfläche geklickt wird, wird die Anwendung beendet.

from PyQt5.QtCore import QCoreApplication

Wir müssen das QCoreApplication-Objekt im QtCore-Modul verwenden

 btn = QPushButton('退出', self)

Wir erstellen eine Schaltfläche, die eine Instanz der QPushButton-Klasse ist. Der erste Parameter des Konstruktors ist die Beschriftung der Schaltfläche. Der zweite Parameter ist das übergeordnete Fenstersteuerelement. Das übergeordnete Fenstersteuerelement ist das Beispielsteuerelement, eine von QWidget geerbte Klasse.

btn.clicked.connect(QCoreApplication.instance().quit)

Das Ereignisverarbeitungssystem basiert auf dem Signal-/Slot-Mechanismus von PyQt5. Wenn wir auf die Schaltfläche klicken, gibt die Schaltfläche ein Signal aus und das Klicksignal ist mit der Methode quit () verbunden, um die Anwendung zu beenden.

Der Slot kann ein Qt-Slot oder ein beliebiger Python-Aufruf sein. QCoreApplication enthält die Hauptereignisschleife; sie verarbeitet und versendet alle Ereignisse. Die Methode „instance()“ liefert uns ihre aktuelle Instanz. Beachten Sie, dass QCoreApplication von QApplication unterschieden werden muss.

Sender und Empfänger: Kommunikation zwischen zwei Objekten. Der Sender ist die Schaltfläche und der Empfänger ist das Anwendungsobjekt.

Das Konzept ist etwas verwirrend, klären wir es hier:

Der Knopf (btn) ist der Sender. Nachdem auf die Schaltfläche geklickt wurde, wird ein Klicksignal gesendet. Klicken Sie auf das Signal, um eine Verbindung zum Slot herzustellen (kann ein Qt-Slot oder ein beliebiger Python-Aufruf sein).
In unserem Fall handelt es sich um einen Qt-Slot. QCoreApplication verarbeitet und versendet alle Qt-Ereignisse und löst das Quit-Ereignis der Instanz (dieser Instanz (Empfänger)) aus.

Das ist wahrscheinlich die Bedeutung, nehmen Sie sich Zeit, es zu verstehen!

Nachdem das Programm ausgeführt wurde, klicken Sie auf die Schaltfläche „Beenden“, um das Programm zu schließen.

PyQt5 muss lernen, das Fenster jeden Tag zu schließen

Verwandte Empfehlungen:

PyQt5-Must-Learn-Popup-Meldungsfeld jeden Tag

PyQt5 erkennt den Download-Fortschrittsbalkeneffekt

PyQt5 muss den Fortschrittsbalkeneffekt jeden Tag lernen

Das obige ist der detaillierte Inhalt vonPyQt5 muss lernen, das Fenster jeden Tag zu schließen. 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