Heim > Artikel > Backend-Entwicklung > Python-Serverprogrammierung: GUI-Programme mit PySide2 entwickeln
Python hat sich zu einer sehr beliebten Programmiersprache entwickelt, und viele Entwickler nutzen die Einfachheit und Flexibilität von Python, um eine Vielzahl von Anwendungen zu erstellen. Unter anderem wird Python auch zur Entwicklung serverseitiger Anwendungen verwendet, und PySide2 ist eines der wichtigsten Werkzeuge in diesem Prozess.
PySide2 ist eine Bindung für die Programmiersprache Python für das Qt-Framework. Mit diesem Tool können Python-Programmierer Programme schreiben, die GUI-Strukturen verwenden. Da PySide2 ein plattformübergreifendes Tool ist, das auf allen gängigen Betriebssystemen läuft, eignet es sich besonders für die Entwicklung serverseitiger Programme.
In diesem Artikel besprechen wir, wie man GUI-Programme mit PySide2 und Python-Serverprogrammierung entwickelt. Wir beginnen mit einfachen PySide2-Anwendungen, zeigen, wie man ihnen Funktionen und Ereignishandler hinzufügt, und besprechen, wie man GUI-Programme mit komplexen Funktionen wie UI-Steuerelementen und Animationen erstellt.
1. PySide2 installieren
Zuerst müssen wir PySide2 installieren. PySide2 läuft auf verschiedenen Betriebssystemen, installieren Sie es also je nach Betriebssystem entsprechend.
Unter Linux können wir PySide2 über pip mit dem folgenden Befehl installieren:
pip install PySide2
Auf Windows-Systemen können wir denselben Befehl in der Eingabeaufforderung verwenden, um PySide2 zu installieren.
Nachdem die Installation abgeschlossen ist, können wir mit dem Schreiben unserer ersten PySide2-Anwendung beginnen.
2. Entwickeln Sie eine einfache PySide2-Anwendung
Wir beginnen mit einer sehr einfachen PySide2-Anwendung, die nur ein Fenster und eine Registerkarte erstellt. Um diese Anwendung zu erstellen, müssen wir die PySide2.QtWidgets- und sys-Module importieren:
import sys from PySide2.QtWidgets import QApplication, QLabel, QWidget
Als nächstes müssen wir ein QApplication- und ein QWidget-Objekt erstellen. Wir werden QWidget-Objekte verwenden, um unsere GUI zu erstellen:
app = QApplication(sys.argv) widget = QWidget() widget.setWindowTitle('My First PySide2 Application') widget.setGeometry(300, 300, 250, 150) label = QLabel('Hello World', widget) label.move(100, 50) widget.show() sys.exit(app.exec_())
Dieses Code-Snippet erstellt ein QWidget-Objekt und legt dessen Position und Größe fest. Außerdem wird eine Beschriftung erstellt und zum QWidget-Objekt hinzugefügt. Etiketten werden mit der QLabel-Klasse erstellt. Schließlich verwenden wir die Show-Methode, um die GUI anzuzeigen und die Anwendung zu beenden.
3. Event-Handler zur Anwendung hinzufügen
Jetzt haben wir eine einfache PySide2-Anwendung erstellt, die aber noch nichts kann. Damit unsere Anwendung auf Ereignisse reagiert, müssen wir Ereignishandler hinzufügen.
In PySide2 können wir Slots verwenden, um Event-Handler zu definieren. Slots sind eine Methode zum Empfangen und Verarbeiten von GUI-Ereignissen. In diesem Beispiel erstellen wir eine neue Klasse, die QWidget erbt und eine Slot-Methode definiert.
Das folgende Code-Snippet erstellt eine Schaltfläche und fügt sie einem QWidget-Objekt hinzu. Diese Schaltfläche löst das PushButtonClicked-Ereignis aus. Dieses Ereignis wird immer dann ausgelöst, wenn auf die Schaltfläche geklickt wird. Wir werden in unserer Anwendung eine Slot-Methode definieren, die das PushButtonClicked-Ereignis verarbeitet und eine Meldung auf der Konsole anzeigt:
import sys from PySide2.QtCore import Slot from PySide2.QtWidgets import QApplication, QPushButton, QWidget class MyWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): button = QPushButton('Click me', self) button.setToolTip('Click this button') button.move(100, 70) button.clicked.connect(self.on_pushButton_clicked) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('My Second PySide2 Application') self.show() @Slot() def on_pushButton_clicked(self): print('Button clicked.')
Wenn wir nun auf die Schaltfläche klicken, zeigt das Programm „Schaltfläche angeklickt“ in den Konsoleninformationen an. Beachten Sie, dass der @Slot()-Dekorator vor der Methode verwendet wird. Dadurch wird dem Programm mitgeteilt, dass es sich bei dieser Methode um einen aufzurufenden PySide2-Slot handelt.
4. Erstellen Sie ein GUI-Programm mit UI-Steuerelementen und Animationen
Jetzt können wir eine einfache PySide2-Anwendung mit Schaltflächen und Ereignishandlern erstellen. Als Nächstes fügen wir dem Programm weitere Steuerelemente und Animationen hinzu.
In diesem Beispiel erstellen wir eine neue Klasse, die die QDialog-Klasse erbt. QDialog ist eine Klasse in PySide2, die zum Anzeigen von Dialogfeldern verwendet wird. In dieser Klasse erstellen wir ein neues Tag für die Sonnenblume, um die Lichtquelle zu verfolgen, und verwenden das Animationsframework von PySide2, um eine kleine Sonne zu erstellen. Wir werden auch eine Schaltfläche hinzufügen, um die Bewegung der Sonne zu steuern.
import sys from PySide2.QtCore import QPropertyAnimation, QRect from PySide2.QtGui import QPainter, QColor from PySide2.QtWidgets import QApplication, QDialog, QLabel, QPushButton from PySide2 import QtGui class Sun(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setFixedSize(100, 100) self.color = QColor(255, 255, 0) def paintEvent(self, event): painter = QPainter(self) painter.setBrush(QtGui.QBrush(self.color)) painter.drawEllipse(0, 0, self.width(), self.height()) class FollowSunDialog(QDialog): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle('Follow the Sun') self.setGeometry(100, 100, 400, 400) sun_label = QLabel(self) sun_label.setFixedSize(50, 50) pixmap = QtGui.QPixmap('sun.png') sun_label.setPixmap(pixmap) self.sun = Sun() self.sun.move(50, 150) self.button = QPushButton('Start', self) self.button.move(50, 300) self.button.clicked.connect(self.onClick) def onClick(self): animator = QPropertyAnimation(self.sun, b'geometry') animator.setDuration(3000) animator.setStartValue(QRect(50, 150, 100, 100)) animator.setEndValue(QRect(200, 50, 50, 50)) animator.start() if __name__ == '__main__': app = QApplication(sys.argv) dialog = FollowSunDialog() dialog.show() sys.exit(app.exec_())
In diesem Codeausschnitt definieren wir zwei Klassen, die Sun-Klasse und die FollowSunDialog-Klasse. Die Sun-Klasse ist eine Unterklasse von QWidget und wird zum Zeichnen von Bildern der Sonne verwendet. Die FollowSunDialog-Klasse ist eine Unterklasse von QDialog und wird zur Anzeige von Dialogfeldern und zur Steuerung der Sonnenbewegung verwendet.
Wir haben auch ein Sonnenbild zum Zeichnen der kleinen Sonne hinzugefügt, eine sun.png-Datei, die im selben Verzeichnis wie die Programmdateien gespeichert ist. Wir haben einen QPushButton erstellt, der beim Drücken die Animation des Sonnen-Widgets in Richtung der oberen rechten Ecke startet.
Animationen werden mit dem PySide2-Animationsframework erstellt. Wenn die Schaltfläche gedrückt wird, definieren wir ein QPropertyAnimation-Objekt, das die Eigenschaften startValue und endValue verwendet, um die Start- und Endpositionen des Sonnen-Widgets zu definieren. Es definiert auch das Timing der Animation.
Fazit:
In diesem Artikel wird die Kombination von PySide2- und Python-Serverprogrammierung vorgestellt. Wir haben eine einfache PySide2-Anwendung erstellt, der Anwendung Ereignishandler hinzugefügt und ein GUI-Programm mit UI-Steuerelementen und Animationen erstellt. PySide2 ist ein sehr leistungsfähiges Tool zum Erstellen von Python-Anwendungen mit GUI-Struktur. Für serverseitige Entwickler kann PySide2 die Entwicklungszeit verkürzen und die Interaktivität und Benutzerfreundlichkeit der Anwendung erhöhen.
Das obige ist der detaillierte Inhalt vonPython-Serverprogrammierung: GUI-Programme mit PySide2 entwickeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!