Maison  >  Article  >  développement back-end  >  Programmation serveur Python : développement d'applications de bureau avec PyQt5

Programmation serveur Python : développement d'applications de bureau avec PyQt5

王林
王林original
2023-06-18 09:32:172948parcourir

Python est devenu un langage de programmation très populaire et il fonctionne très bien en programmation côté serveur. Sa grande lisibilité et sa syntaxe simple apportent une grande commodité à la programmation. Cependant, en termes de programmation d’applications bureautiques, Python a rencontré quelques difficultés dans la conception des interfaces GUI. Mais désormais, avec PyQt5, le développement d’applications de bureau en Python est devenu plus facile.

PyQt5 est une bibliothèque Python largement utilisée qui peut être utilisée pour créer des applications de bureau. PyQt5 est développé sur la base du framework Qt. Qt est un framework de développement multiplateforme capable d'exécuter des programmes sur plusieurs plateformes. PyQt5 peut être utilisé non seulement pour créer des applications de bureau, mais il possède également de nombreuses autres applications, telles que la création d'applications Web et de jeux.

Dans cet article, nous explorerons comment développer une application de bureau simple à l'aide de PyQt5, en utilisant Python comme serveur et en créant une interface graphique à l'aide de PyQt5. Nous allons créer une application de calcul simple dans laquelle l'utilisateur pourra saisir des équations mathématiques et calculer le résultat. Commençons !

Pour commencer à écrire notre application, nous avons besoin d'installateurs pour Python3 et PyQt5. Nous pouvons obtenir le programme d'installation de Python3 sur le site officiel de Python et télécharger le programme d'installation de PyQt5 depuis le site officiel de PyQt5.

Une fois l'installation terminée, nous pouvons commencer à écrire notre code. Tout d'abord, nous devons importer le module PyQt5 et créer une fenêtre d'application. Le code suivant créera une fenêtre vide.

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow

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

Dans cet exemple, nous avons d'abord importé le module sys et les classes QApplication et QMainWindow. Ensuite, nous créons un objet QApplication, qui est l'objet principal de notre application. Nous avons également créé un objet QMainWindow et utilisé la méthode show() pour afficher la fenêtre de l'application. Enfin, utilisez la méthode sys.exit() pour vous assurer que le programme se termine en toute sécurité.

Maintenant, nous pouvons ajouter des widgets à la fenêtre, tels que des boutons et des zones de texte, etc. Notre application nécessite deux zones de texte, une pour saisir les calculs et une pour afficher les résultats, ainsi que quelques boutons pour effectuer des opérations arithmétiques.

Voici le code de notre application :

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_())

Dans cet exemple, nous avons créé une classe appelée Calculator, qui hérite de QWidget. Dans le constructeur, nous définissons un titre pour la fenêtre de l'application et créons deux zones de texte pour saisir les calculs et afficher les résultats. Nous avons également créé des boutons permettant d'effectuer diverses opérations arithmétiques.

Nous utilisons QVBoxLayout pour définir la disposition verticale des widgets dans l'application. Cette mise en page est ensuite définie sur notre widget à l'aide de la méthode setLayout().

Nous définissons également trois autres méthodes dans le code. La méthode on_click() est un gestionnaire d'événements de bouton qui ajoute le caractère sur lequel l'utilisateur a cliqué sur le bouton à la zone de saisie. La méthode calculate() effectue un calcul mathématique et affiche les résultats dans la zone de résultats. Si la saisie de l'utilisateur n'est pas un calcul valide, la boîte de résultat affichera un message d'erreur. La méthode clear() effacera tout ce qui se trouve dans les zones de saisie et de résultat.

Enfin, dans la fonction principale, nous créons un objet QMainWindow et définissons l'objet Calculatrice comme widget central. Utilisez la méthode setWindowTitle() pour définir le titre de l'application, et enfin utilisez la méthode show() pour afficher la fenêtre.

Maintenant, nous pouvons exécuter l'application. Exécutez le programme python dans le terminal et enregistrez-le en tant que fichier .py, puis exécutez-le.

Il s'agit d'une application de calculatrice simple, mais qui démontre la capacité de développer des applications de bureau très puissantes à l'aide de PyQt5. PyQt5 possède de nombreuses autres fonctionnalités, telles que la prise en charge de styles et de thèmes Qt riches, l'extension des fonctions d'application via le mécanisme de plug-in PyQt5, etc.

En bref, PyQt5 est une bibliothèque Python très puissante qui peut être utilisée pour créer différents types d'applications de bureau. Si vous êtes intéressé par le développement d'applications de bureau ou si vous souhaitez en savoir plus sur PyQt5, il est recommandé de lire la documentation officielle de PyQt5 et son exemple de code.

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!

Déclaration:
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