Pengaturcaraan Pelayan Python: Membangunkan Aplikasi Desktop dengan PyQt5

王林
Lepaskan: 2023-06-18 09:32:17
asal
2905 orang telah melayarinya

Python telah menjadi bahasa pengaturcaraan yang sangat popular, dan ia berfungsi dengan baik dalam pengaturcaraan sebelah pelayan. Kebolehbacaan yang tinggi dan sintaksnya yang mudah membawa kemudahan besar kepada pengaturcaraan. Walau bagaimanapun, dari segi pengaturcaraan aplikasi desktop, Python telah menghadapi beberapa kesukaran dalam reka bentuk antara muka GUI. Tetapi kini dengan PyQt5, pembangunan aplikasi desktop dalam Python telah menjadi lebih mudah.

PyQt5 ialah perpustakaan Python yang digunakan secara meluas yang boleh digunakan untuk mencipta aplikasi desktop. PyQt5 dibangunkan berdasarkan rangka kerja Qt Qt ialah rangka kerja pembangunan merentas platform yang boleh menjalankan program pada berbilang platform. PyQt5 boleh digunakan bukan sahaja untuk mencipta aplikasi desktop, tetapi ia juga mempunyai banyak aplikasi lain, seperti mencipta aplikasi web dan permainan.

Dalam artikel ini, kami akan meneroka cara membangunkan aplikasi desktop mudah menggunakan PyQt5, menggunakan Python sebagai pelayan dan mencipta antara muka GUI menggunakan PyQt5. Kami akan membina aplikasi kalkulator mudah di mana pengguna boleh memasukkan persamaan matematik dan mengira hasilnya. Mari mulakan!

Untuk mula menulis aplikasi kami, kami memerlukan pemasang untuk Python3 dan PyQt5. Kami boleh mendapatkan pemasang Python3 daripada laman web rasmi Python dan memuat turun pemasang PyQt5 daripada laman web rasmi PyQt5.

Selepas pemasangan selesai, kami boleh mula menulis kod kami. Pertama, kita perlu mengimport modul PyQt5 dan mencipta tetingkap aplikasi. Kod berikut akan mencipta tetingkap kosong.

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow

app = QApplication(sys.argv)
win = QMainWindow()
win.show()
sys.exit(app.exec_())
Salin selepas log masuk

Dalam contoh ini, kami mula-mula mengimport modul sys dan kelas QApplication dan QMainWindow. Seterusnya kami mencipta objek QApplication, yang merupakan objek teras aplikasi kami. Kami juga mencipta objek QMainWindow dan menggunakan kaedah show() untuk memaparkan tetingkap aplikasi. Akhir sekali, gunakan kaedah sys.exit() untuk memastikan program keluar dengan selamat.

Kini kami boleh menambah beberapa widget pada tetingkap, seperti butang dan kotak teks, dsb. Aplikasi kami memerlukan dua kotak teks, satu untuk memasukkan pengiraan dan satu untuk memaparkan keputusan, dan beberapa butang untuk melaksanakan operasi aritmetik.

Berikut ialah kod untuk aplikasi kami:

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_())
Salin selepas log masuk

Dalam contoh ini, kami telah mencipta kelas yang dipanggil Kalkulator, yang mewarisi daripada QWidget. Dalam pembina, kami menetapkan tajuk untuk tetingkap aplikasi dan mencipta dua kotak teks untuk memasukkan pengiraan dan memaparkan hasil. Kami juga mencipta beberapa butang yang melakukan pelbagai operasi aritmetik.

Kami menggunakan QVBoxLayout untuk menetapkan susun atur menegak widget dalam aplikasi. Reka letak ini kemudiannya ditetapkan kepada widget kami menggunakan kaedah setLayout().

Kami juga mentakrifkan tiga kaedah lain dalam kod. Kaedah on_click() ialah pengendali acara butang yang menambahkan aksara yang diklik oleh pengguna pada butang pada kotak input. Kaedah hitung() melakukan pengiraan matematik dan memaparkan keputusan dalam kotak keputusan. Jika input pengguna bukan pengiraan yang sah, kotak hasil akan memaparkan mesej ralat. Kaedah clear() akan mengosongkan segala-galanya dalam kotak input dan hasil.

Akhir sekali, dalam fungsi utama, kami mencipta objek QMainWindow dan menetapkan objek Kalkulator sebagai widget tengahnya. Gunakan kaedah setWindowTitle() untuk menetapkan tajuk aplikasi, dan akhirnya gunakan kaedah show() untuk memaparkan tetingkap.

Kini kita boleh menjalankan aplikasi. Jalankan program python dalam terminal dan simpan sebagai fail .py dan kemudian laksanakannya.

Ini ialah aplikasi kalkulator yang ringkas, tetapi menunjukkan keupayaan untuk membangunkan aplikasi desktop yang sangat berkuasa menggunakan PyQt5. PyQt5 mempunyai banyak ciri lain, seperti sokongan untuk gaya dan tema Qt yang kaya, memperluaskan fungsi aplikasi melalui mekanisme pemalam PyQt5, dsb.

Ringkasnya, PyQt5 ialah perpustakaan Python yang sangat berkuasa yang boleh digunakan untuk mencipta pelbagai jenis aplikasi desktop. Jika anda berminat untuk membangunkan aplikasi desktop atau ingin mengetahui lebih lanjut tentang PyQt5, adalah disyorkan untuk membaca dokumentasi rasmi PyQt5 dan kod sampelnya.

Atas ialah kandungan terperinci Pengaturcaraan Pelayan Python: Membangunkan Aplikasi Desktop dengan PyQt5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!