Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Serverprogrammierung: Desktop-Anwendungen mit PyQt5 entwickeln

Python-Serverprogrammierung: Desktop-Anwendungen mit PyQt5 entwickeln

王林
王林Original
2023-06-18 09:32:172968Durchsuche

Python hat sich zu einer sehr beliebten Programmiersprache entwickelt und eignet sich hervorragend für die serverseitige Programmierung. Seine gute Lesbarkeit und einfache Syntax sorgen für großen Komfort bei der Programmierung. Bei der Programmierung von Desktop-Anwendungen ist Python jedoch auf einige Schwierigkeiten beim Entwurf von GUI-Schnittstellen gestoßen. Aber jetzt ist mit PyQt5 die Entwicklung von Desktop-Anwendungen in Python einfacher geworden.

PyQt5 ist eine weit verbreitete Python-Bibliothek zum Erstellen von Desktop-Anwendungen. PyQt5 basiert auf dem Qt-Framework. Qt ist ein plattformübergreifendes Entwicklungsframework, das Programme auf mehreren Plattformen ausführen kann. PyQt5 kann nicht nur zum Erstellen von Desktop-Anwendungen verwendet werden, sondern verfügt auch über viele andere Anwendungen, beispielsweise zum Erstellen von Webanwendungen und Spielen.

In diesem Artikel erfahren Sie, wie Sie mit PyQt5 eine einfache Desktop-Anwendung entwickeln, Python als Server verwenden und mit PyQt5 eine GUI-Schnittstelle erstellen. Wir werden eine einfache Rechneranwendung erstellen, in der der Benutzer mathematische Gleichungen eingeben und das Ergebnis berechnen kann. Fangen wir an!

Um mit dem Schreiben unserer Anwendung zu beginnen, benötigen wir Installationsprogramme für Python3 und PyQt5. Wir können das Python3-Installationsprogramm von der offiziellen Python-Website herunterladen und das PyQt5-Installationsprogramm von der offiziellen PyQt5-Website herunterladen.

Nachdem die Installation abgeschlossen ist, können wir mit dem Schreiben unseres Codes beginnen. Zuerst müssen wir das PyQt5-Modul importieren und ein Anwendungsfenster erstellen. Der folgende Code erstellt ein leeres Fenster.

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow

app = QApplication(sys.argv)
win = QMainWindow()
win.show()
sys.exit(app.exec_())

In diesem Beispiel haben wir zuerst das sys-Modul und die Klassen QApplication und QMainWindow importiert. Als nächstes erstellen wir ein QApplication-Objekt, das das Kernobjekt unserer Anwendung ist. Wir haben außerdem ein QMainWindow-Objekt erstellt und die Methode show() verwendet, um das Fenster der Anwendung anzuzeigen. Verwenden Sie abschließend die Methode sys.exit(), um sicherzustellen, dass das Programm sicher beendet wird.

Jetzt können wir dem Fenster einige Widgets hinzufügen, z. B. Schaltflächen und Textfelder usw. Unsere Anwendung benötigt zwei Textfelder, eines zum Eingeben von Berechnungen und eines zum Anzeigen der Ergebnisse, sowie einige Schaltflächen zum Durchführen arithmetischer Operationen.

Hier ist der Code für unsere Anwendung:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QLineEdit, QPushButton, QVBoxLayout


class Calculator(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Calculator')
        
        # 创建两个文本框
        self.input_box = QLineEdit()
        self.result_box = QLineEdit()
        self.result_box.setReadOnly(True)
        
        # 创建按钮
        self.btn_1 = QPushButton('1')
        self.btn_2 = QPushButton('2')
        self.btn_3 = QPushButton('3')
        self.btn_4 = QPushButton('4')
        self.btn_5 = QPushButton('5')
        self.btn_6 = QPushButton('6')
        self.btn_7 = QPushButton('7')
        self.btn_8 = QPushButton('8')
        self.btn_9 = QPushButton('9')
        self.btn_0 = QPushButton('0')
        self.btn_add = QPushButton('+')
        self.btn_sub = QPushButton('-')
        self.btn_mul = QPushButton('*')
        self.btn_div = QPushButton('/')
        self.btn_calculate = QPushButton('=')
        self.btn_clear = QPushButton('Clear')
        
        # 将按钮连接到处理程序
        self.btn_1.clicked.connect(lambda: self.on_click('1'))
        self.btn_2.clicked.connect(lambda: self.on_click('2'))
        self.btn_3.clicked.connect(lambda: self.on_click('3'))
        self.btn_4.clicked.connect(lambda: self.on_click('4'))
        self.btn_5.clicked.connect(lambda: self.on_click('5'))
        self.btn_6.clicked.connect(lambda: self.on_click('6'))
        self.btn_7.clicked.connect(lambda: self.on_click('7'))
        self.btn_8.clicked.connect(lambda: self.on_click('8'))
        self.btn_9.clicked.connect(lambda: self.on_click('9'))
        self.btn_0.clicked.connect(lambda: self.on_click('0'))
        self.btn_add.clicked.connect(lambda: self.on_click('+'))
        self.btn_sub.clicked.connect(lambda: self.on_click('-'))
        self.btn_mul.clicked.connect(lambda: self.on_click('*'))
        self.btn_div.clicked.connect(lambda: self.on_click('/'))
        self.btn_calculate.clicked.connect(self.calculate)
        self.btn_clear.clicked.connect(self.clear)
        
        # 创建垂直布局
        vbox = QVBoxLayout()
        vbox.addWidget(self.input_box)
        vbox.addWidget(self.result_box)
        vbox.addWidget(self.btn_1)
        vbox.addWidget(self.btn_2)
        vbox.addWidget(self.btn_3)
        vbox.addWidget(self.btn_4)
        vbox.addWidget(self.btn_5)
        vbox.addWidget(self.btn_6)
        vbox.addWidget(self.btn_7)
        vbox.addWidget(self.btn_8)
        vbox.addWidget(self.btn_9)
        vbox.addWidget(self.btn_0)
        vbox.addWidget(self.btn_add)
        vbox.addWidget(self.btn_sub)
        vbox.addWidget(self.btn_mul)
        vbox.addWidget(self.btn_div)
        vbox.addWidget(self.btn_calculate)
        vbox.addWidget(self.btn_clear)
        
        # 设置小部件的布局
        self.setLayout(vbox)
        
        self.show()
    
    def on_click(self, key):
        self.input_box.setText(self.input_box.text() + key)
        
    def calculate(self):
        try:
            result = eval(self.input_box.text())
            self.result_box.setText(str(result))
        except:
            self.result_box.setText('Error')
            
    def clear(self):
        self.input_box.setText('')
        self.result_box.setText('')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = QMainWindow()
    
    calc = Calculator()
    win.setCentralWidget(calc)
    
    win.setWindowTitle('Calculator')
    win.show()
    
    sys.exit(app.exec_())

In diesem Beispiel haben wir eine Klasse namens Calculator erstellt, die von QWidget erbt. Im Konstruktor legen wir einen Titel für das Anwendungsfenster fest und erstellen zwei Textfelder zur Eingabe von Berechnungen und zur Anzeige von Ergebnissen. Wir haben auch einige Schaltflächen erstellt, die verschiedene Rechenoperationen ausführen.

Wir verwenden QVBoxLayout, um das vertikale Layout der Widgets in der Anwendung festzulegen. Dieses Layout wird dann mit der Methode setLayout() auf unser Widget festgelegt.

Wir definieren außerdem drei weitere Methoden im Code. Die Methode on_click() ist ein Schaltflächen-Ereignishandler, der das Zeichen, auf das der Benutzer auf die Schaltfläche geklickt hat, zum Eingabefeld hinzufügt. Die Methode „calcute()“ führt eine mathematische Berechnung durch und zeigt die Ergebnisse im Ergebnisfeld an. Wenn es sich bei der Benutzereingabe nicht um eine gültige Berechnung handelt, wird im Ergebnisfeld eine Fehlermeldung angezeigt. Die Methode clear() löscht alles in den Eingabe- und Ergebnisfeldern.

Schließlich erstellen wir in der Hauptfunktion ein QMainWindow-Objekt und legen das Calculator-Objekt als sein zentrales Widget fest. Verwenden Sie die Methode setWindowTitle(), um den Titel der Anwendung festzulegen, und verwenden Sie schließlich die Methode show(), um das Fenster anzuzeigen.

Jetzt können wir die Anwendung ausführen. Führen Sie das Python-Programm im Terminal aus, speichern Sie es als .py-Datei und führen Sie es dann aus.

Dies ist eine einfache Taschenrechneranwendung, die jedoch die Fähigkeit demonstriert, mit PyQt5 sehr leistungsstarke Desktopanwendungen zu entwickeln. PyQt5 verfügt über viele weitere Funktionen, z. B. die Unterstützung umfangreicher Qt-Stile und -Themen, die Erweiterung der Anwendungsfunktionen durch den PyQt5-Plug-In-Mechanismus usw.

Kurz gesagt ist PyQt5 eine sehr leistungsstarke Python-Bibliothek, mit der verschiedene Arten von Desktop-Anwendungen erstellt werden können. Wenn Sie an der Entwicklung von Desktop-Anwendungen interessiert sind oder mehr über PyQt5 erfahren möchten, empfiehlt es sich, die offizielle Dokumentation von PyQt5 und den Beispielcode zu lesen.

Das obige ist der detaillierte Inhalt vonPython-Serverprogrammierung: Desktop-Anwendungen mit PyQt5 entwickeln. 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