Python

Cara Menggunakan PyQt GUI Builder

Cara Menggunakan PyQt GUI Builder

PyQt adalah perpustakaan Python yang popular yang digunakan untuk melaksanakan aplikasi grafik di Python dengan lebih mudah. Perpustakaan ini dilengkapi dengan alat pembangun GUI (Antaramuka Pengguna Grafik) yang dipanggil Pereka Qt. GUI dapat dibangun dengan cepat di Python menggunakan fitur drag-and-drop perpustakaan ini, walaupun alat ini tidak memiliki kemudahan debug seperti IDE standard. Tutorial ini menunjukkan kepada anda bagaimana menerapkan GUI menggunakan kelas Pereka Qt PyQt.

Prasyarat

Anda mesti memasang alat Qt Designer sebelum mempraktikkan contoh yang diberikan dalam tutorial ini. Jalankan arahan berikut untuk memasang Pereka Qt pada sistem anda:

$ sudo apt-get install alat qttools5-dev-
$ sudo apt-get install qttools5-dev

Buka Pereka Qt

Jalankan perintah berikut untuk mengubah lokasi direktori semasa ke Pereka Qt folder.

$ cd / usr / lib / x86_64-linux-gnu / qt5 / tong /

Jalankan arahan berikut untuk membuka aplikasi Qt Designer.

$ ./ pereka

Sekiranya Pereka Qt telah dipasang dengan betul, tetingkap berikut akan muncul. The Widget kotak yang ditunjukkan di sebelah kiri tetingkap utama mengandungi pelbagai widget yang boleh anda gunakan untuk merancang antara muka pengguna aplikasi. The Borang Baru tetingkap digunakan untuk membuat tetingkap baru menggunakan butang lalai. Tingkap yang ditunjukkan di sebelah kanan tetingkap utama memberikan maklumat mengenai widget yang boleh dibaca atau diubah.

Buat Borang Pertama Menggunakan Pereka Qt

Untuk mula merancang antara muka untuk aplikasi Python, kita akan mengklik Buat butang di tetingkap berikut untuk membuka kotak dialog dengan dua butang lalai.

Seterusnya, kami akan merancang borang log masuk menggunakan Widget Label, Edit Teks, dan Tombol Tekan. Kotak dialog akan disimpan dengan nama Login.ui, yang akan digunakan kemudian dalam skrip Python. The QObject nama akan ditukar menjadi Logindialog menggunakan Tetingkap Penyunting Harta permohonan ini.

Menggunakan Kotak Dialog Log Masuk

Fail antara muka pengguna yang dibuat oleh Pereka Qt boleh digunakan dalam skrip Python dengan dua cara. Fail boleh digunakan secara langsung dalam skrip Python, atau fail Python yang telah ditukar Pereka Qt fail boleh digunakan dalam skrip Python. Kedua-dua cara menggunakan kotak dialog Pereka Qt ditunjukkan dalam bahagian tutorial berikut.

Jalankan Fail Qt Designer Secara Langsung

Modul UIC perpustakaan PyQt digunakan untuk memuatkan fail yang dibuat oleh Qt Designer, dan loadUI () kaedah modul UIC digunakan untuk memuatkan fail UI. Skrip berikut menunjukkan cara memuat Pereka Qt fail bernama Log masuk.ui yang kita buat sebelum ini. Modul yang diperlukan diimport pada awal skrip. Objek aplikasi dibuat menggunakan Permohonan Q (), dan juga Pereka Qt fail dimuat menggunakan loadUI () kaedah. Seterusnya, exec () kaedah dipanggil untuk memulakan gelung peristiwa aplikasi.

# Modul sys import
import sys
# Import modul QtWidget dan uic
dari PyQt5 import QtWidgets, uic
# Buat objek aplikasi
aplikasi = QtWidgets.QApplication (sys.berhujah)
# Muatkan borang dan paparan GUI
tingkap = uic.loadUi ("Log masuk.ui ")
tingkap.tunjuk ()
# Mulakan gelung peristiwa aplikasi atau kotak dialog
aplikasi.exec ()

Kotak dialog berikut akan muncul setelah menjalankan skrip di atas.

Jalankan Fail UI dengan Menukar menjadi Fail Python

Fail UI yang dibuat oleh Qt Designer dapat diubah menjadi fail Python menggunakan pyuic5 perintah. Jalankan arahan berikut untuk menukar Log masuk.ui fail ke dalam borang kemasukan.py fail. The Log masuk.ui fail mesti disimpan di lokasi semasa untuk menjalankan perintah berikut; jika tidak, ralat akan dihasilkan.

$ pyuic5 Log masuk.ui -o loginForm.py

Kod berikut akan dihasilkan di borang kemasukan.py fail setelah melaksanakan arahan di atas.

# - * - pengekodan: utf-8 - *-
# Pelaksanaan borang dihasilkan dari membaca fail ui 'Login.ui '
#
# Dicipta oleh: Penjana kod UI PyQt5 5.12.3
#
# AMARAN! Semua perubahan yang dibuat dalam fail ini akan hilang!
dari PyQt5 import QtCore, QtGui, QtWidgets
kelas Ui_Logindialog (objek):
def setupUi (diri, Logindialog):
Logindialog.setObjectName ("Logindialog")
Logindialog.ubah saiz (400, 224)
diri.textEdit = QtWidgets.QTextEdit (Logindialog)
diri.teksEdit.setGeometry (QtCore.QRect (130, 70, 221, 31))
diri.teksEdit.setObjectName ("textEdit")
diri.textEdit_2 = QtWidgets.QTextEdit (Logindialog)
diri.teksEdit_2.setGeometry (QtCore.QRect (130, 120, 221, 31))
diri.teksEdit_2.setObjectName ("textEdit_2")
diri.label = QtWidgets.QLabel (Logindialog)
diri.label.setGeometry (QtCore.QRect (140, 20, 131, 31))
fon = QtGui.QFont ()
fon.setPointSize (18)
diri.label.setFont (fon)
diri.label.setObjectName ("label")
diri.label_2 = QtWidgets.QLabel (Logindialog)
diri.label_2.setGeometry (QtCore.QRect (36, 70, 81, 20))
diri.label_2.setObjectName ("label_2")
diri.label_3 = QtWidgets.QLabel (Logindialog)
diri.label_3.setGeometry (QtCore.QRect (40, 120, 67, 17))
diri.label_3.setObjectName ("label_3")
diri.btnLogin = QtWidgets.QPushButton (Logindialog)
diri.btnLogin.setGeometry (QtCore.QRect (150, 170, 89, 25))
diri.btnLogin.setObjectName ("btnLogin")
diri.btnCancel = QtWidgets.QPushButton (Logindialog)
diri.btnBatal.setGeometry (QtCore.QRect (250, 170, 89, 25))
diri.btnBatal.setObjectName ("btnCancel")
diri.retranslateUi (Logindialog)
QtCore.QMetaObject.connectSlotsByName (Logindialog)
def retranslateUi (diri, Logindialog):
_translate = QtCore.Permohonan QCore.terjemahkan
Logindialog.setWindowTitle (_translate ("Logindialog", "Dialog"))
diri.label.setText (_translate ("Logindialog", "Borang Log Masuk"))
diri.label_2.setText (_translate ("Logindialog", "Nama Pengguna"))
diri.label_3.setText (_translate ("Logindialog", "Kata Laluan"))
diri.btnLogin.setText (_translate ("Logindialog", "Login"))
diri.btnBatal.setText (_translate ("Logindialog", "Batal"))

Berikut ini akan memaparkan Log masuk kotak dialog dengan mengimport borang kemasukan.py fail dibuat menggunakan pyuic5 perintah. Objek aplikasi dibuat menggunakan Permohonan Q (), dan kotak dialog Login dimuat menggunakan persediaanUi () kaedah. Butang Masuk dilampirkan dengan log masukKlik () kaedah untuk memeriksa sama ada nama pengguna dan kata laluan yang diambil dari pengguna adalah sah. The Batal butang dilampirkan pada batalKlik () kaedah untuk berhenti dari aplikasi. The exec () kaedah dipanggil untuk memulakan gelung peristiwa aplikasi.

# Import QtWidgets
dari PyQt5 import QtWidgets
# Import sys
import sys
# Import borang log masuk ui
import loginForm
# Tentukan kelas untuk menyediakan UI
kelas MyApp (QtWidgets.QMainWindow, loginForm.Ui_Logindialog):
def __init __ (diri, ibu bapa = Tiada):
super (MyApp, diri).__init __ (ibu bapa)
# Muatkan borang log masuk
diri.persediaanUi (diri)
# Kaedah log masukKlik ()
diri.btnLogin.diklik.menyambung (diri.log masukKlik)
# Kaedah membatalkan panggilan ()
diri.btnBatal.diklik.menyambung (diri.batalKlik)
# Menyatakan kaedah untuk memeriksa nama pengguna dan kata laluan apabila butang Login akan diklik
log masuk diklik (diri):
sekiranya diri.teksEdit.toPlainText () == 'admin' dan diri.teksEdit_2.kePlainText () == 'superuser':
cetak ('Pengguna yang Dikesahkan')
lain:
cetak ('Pengguna Tidak Berautentikasi')
# Menyatakan kaedah untuk menamatkan skrip apabila butang Batal akan mengklik
def cancelKlik (diri):
keluar ()
# Buat objek aplikasi
aplikasi = QtWidgets.QApplication (sys.berhujah)
# Buat objek kelas
borang = MyApp ()
# Paparkan borang
bentuk.tunjuk ()
# Mulakan gelung peristiwa aplikasi atau kotak dialog
aplikasi.exec ()

Kotak dialog berikut akan muncul setelah menjalankan skrip di atas.


Sekiranya pengguna memasukkan nama pengguna atau kata laluan yang salah di Log masuk bentuk, maka output berikut akan muncul setelah mengklik Log masuk butang.


Sekiranya pengguna memasukkan nama pengguna dan kata laluan yang betul di Log masuk bentuk, maka output berikut akan muncul setelah mengklik pada Log masuk butang.


Sekiranya pengguna mengklik Batal butang di Log masuk bentuk, maka kotak dialog akan hilang.

Kesimpulannya

Tutorial ini menunjukkan cara memasang Pereka Qt dan bagaimana merancang bentuk ringkas menggunakan aplikasi ini. Tutorial juga menunjukkan kepada anda bagaimana memuat kotak dialog UI secara langsung dan setelah mengubahnya menjadi skrip Python telah ditunjukkan di bahagian lain dari tutorial ini. Semoga artikel ini membantu anda untuk lebih memahami penggunaan Qt Designer untuk membina dan menggunakan GUI dalam aplikasi.

Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...
Vulkan untuk Pengguna Linux
Dengan setiap kad grafik generasi baru, kami melihat pembangun permainan mendorong had kesetiaan grafik dan semakin dekat dengan fotorealisme. Tetapi ...
OpenTTD vs Simutrans
Membuat simulasi pengangkutan anda sendiri boleh menyeronokkan, santai dan sangat menarik. Itulah sebabnya anda perlu memastikan bahawa anda mencuba s...