Dalam kursus ini, anda akan diminta untuk memasukkan namanya diikuti dengan mengklik tombol push. Saat mengklik tombol, pesan selamat datang akan muncul, “Halo,” diikuti dengan nama yang dimasukkan oleh pengguna. Untuk langkah ini, kita perlu menggunakan tiga widget, Label, Edit Baris, dan Tombol Tekan. Mari kita pahami widget ini satu per satu.
Memahami widget Label
Widget Label adalah turunan dari kelas SQL dan digunakan untuk menampilkan pesan dan gambar. Karena widget Label hanya menampilkan hasil perhitungan dan tidak mengambil input apa pun, mereka hanya digunakan untuk memasok informasi di layar.
Metode
Berikut ini adalah metode yang disediakan oleh kelas QLabel:
setText (): Metode ini memberikan teks ke widget Label
setPixmap (): Metode ini menetapkan pixmap, turunan dari kelas QPixmap, ke widget Label
setNum (): Metode ini memberikan nilai integer atau dobel untuk widget Label
clear (): Metode ini membersihkan teks dari widget Label
Teks standar QLabel adalah TextLabel. Yaitu, saat Anda menambahkan kelas QLabel ke formulir dengan menyeret widget Label dan menjatuhkannya di formulir, itu akan menampilkan TextLabel. Selain menggunakan setText (), Anda juga dapat menetapkan teks ke objek QLabel yang dipilih dengan menyetel properti teksnya di jendela Editor Properti.
Memahami widget Edit Baris
Widget Line Edit adalah yang populer digunakan untuk memasukkan data single-line. Widget Line Edit adalah turunan dari kelas QLineEdit, dan Anda tidak hanya bisa masuk, tetapi juga mengedit data juga. Selain memasukkan data, Anda dapat membatalkan, mengulang, memotong, dan menempelkan data di widget Edit Baris.
Metode
Berikut ini adalah metode yang disediakan oleh kelas QLineEdit:
setEchoMode (): Ini mengatur mode gema dari widget Line Edit. Yaitu, ini menentukan bagaimana konten widget Edit Baris akan ditampilkan. Opsi yang tersedia adalah sebagai berikut:
Normal: Ini adalah mode default dan ini menampilkan karakter cara mereka dimasukkan
NoEcho: Ini menonaktifkan echo Line Edit, artinya tidak menampilkan apa pun
Kata Sandi: Opsi ini digunakan untuk bidang kata sandi, tidak ada teks yang akan ditampilkan; sebagai gantinya, tanda bintang muncul untuk teks yang dimasukkan oleh pengguna
PasswordEchoOnEdit: Ini menampilkan teks aktual saat mengedit bidang kata sandi, jika tidak maka akan menampilkan tanda bintang untuk teks
maxLength (): Metode ini digunakan untuk menentukan panjang teks maksimum yang dapat dimasukkan dalam widget Edit Baris.
setText (): Metode ini digunakan untuk menetapkan teks ke widget Line Edit.
text (): Metode ini mengakses teks yang dimasukkan dalam widget Line Edit.
clear (): Metode ini menghapus atau menghapus konten lengkap widget Edit Baris.
setReadOnly (): Ketika nilai Boolean true dilewatkan ke metode ini, itu akan membuat widget Line Edit read-only, yaitu, tidak dapat diedit. Pengguna tidak dapat membuat perubahan apa pun pada konten yang ditampilkan melalui widget Line Edit, tetapi hanya dapat menyalin.
isReadOnly (): Metode ini mengembalikan nilai Boolean true jika widget Line Edit dalam mode read-only, jika tidak maka akan mengembalikan false.
setEnabled (): Secara default, widget Line Edit diaktifkan, artinya, pengguna dapat mengubahnya. Tetapi jika nilai Boolean false dilewatkan ke metode ini, itu akan menonaktifkan widget Edit Baris sehingga pengguna tidak dapat mengedit kontennya, tetapi hanya dapat menetapkan teks melalui metode setText ().
setFocus (): Metode ini menempatkan kursor pada widget Edit Baris yang ditentukan.
Memahami widget Tombol Tekan
Untuk menampilkan tombol tekan dalam suatu aplikasi, Anda perlu membuat turunan dari kelas QPushButton. Saat menetapkan teks ke tombol, Anda dapat membuat tombol pintasan dengan mendahului karakter apa pun dalam teks dengan tanda dan. Misalnya, jika teks yang ditetapkan untuk tombol tekan adalah Klik Saya, karakter C akan digarisbawahi untuk menunjukkan bahwa itu adalah tombol pintas, dan pengguna dapat memilih tombol dengan menekan Alt + C. Tombol memancarkan klik () sinyal jika diaktifkan. Selain teks, ikon juga dapat ditampilkan di tombol push. Metode untuk menampilkan teks dan ikon di tombol adalah sebagai berikut:
setText (): Metode ini digunakan untuk menetapkan teks ke tombol push
setIcon (): Metode ini digunakan untuk menetapkan ikon ke tombol push
Bagaimana cara melakukannya…
Mari kita membuat aplikasi baru berdasarkan template Dialog tanpa Tombol. Seperti yang dikatakan sebelumnya, aplikasi ini akan meminta pengguna untuk memasukkan nama dan, pada mengklik tombol tekan setelah memasukkan nama, aplikasi dengan menampilkan pesan halo bersama dengan nama yang dimasukkan. Berikut langkah-langkah untuk membuat aplikasi ini:
- Seret widget Label dari kategori Display Widgets dan letakkan di form. Setel properti teksnya ke Masukkan nama Anda. Tetapkan theobjectNameproperty dari theLabelwidget tolabelResponse.
- Seret satu lagi Labelwidget dari Kategori Tampilan Widget dan letakkan di formulir. Jangan mengubah properti teks dari widget Label ini dan meninggalkan properti teksnya ke nilai standarnya, TextLabel. Ini karena properti textLabelwidget ini akan diatur melalui kode, yaitu, ia akan digunakan untuk menampilkan pesan halo kepada pengguna.
- Seret satu Baris Edit dari kategori Input Widget dan letakkan di formulir. Setel objectNamepropertytolineEditName-nya.
- Seret satu widget Tombol Tekan dari kategori Tombol dan letakkan di atas formulir. Setel properti teksnya menjadi Klik. Anda dapat mengubah properti teks dari widget Tombol Tekan melalui salah satu dari tiga cara berikut: dengan mengklik dua kali widget Tombol Tekan dan menimpa teks standar, dengan mengklik kanan widget Tombol Tekan dan memilih opsi Ubah teks … dari menu konteks yang muncul, atau dengan memilih properti teks dari jendela Editor Properti dan menimpa teks default.
- Setel properti objectName dari widget Tombol Tekan ke ButtonClickMe.
- Simpan aplikasi dengan nama demoLineEdit.ui. Sekarang formulir akan muncul, seperti yang ditunjukkan pada tangkapan layar berikut:
Antarmuka pengguna yang Anda buat dengan Qt Designer disimpan dalam file .ui yang mencakup semua informasi formulir: widget, tata letak, dan sebagainya. File .ui adalah file XML, dan Anda harus mengonversinya menjadi kode Python. Dengan begitu, Anda dapat mempertahankan pemisahan yang jelas antara antarmuka visual dan perilaku yang diterapkan dalam kode.
- Untuk menggunakan file .ui, Anda harus terlebih dahulu mengonversinya menjadi skrip Python. Utilitas perintah yang akan Anda gunakan untuk mengonversi file .ui menjadi skrip Python adalah pyuic5. Di Windows, utilitas pyuic5 dibundel dengan PyQt. Untuk melakukan konversi, Anda perlu membuka jendela Prompt Perintah dan menavigasi ke folder tempat file disimpan dan mengeluarkan perintah berikut:
C:\Pythonbook\PyQt5>pyuic5 demoLineEdit.ui -o demoLineEdit.py
Mari kita asumsikan bahwa kita menyimpan formulir di lokasi ini: C: \ Pythonbook \ PyQt5>. Perintah sebelumnya menunjukkan konversi file demoLineEdit.ui menjadi skrip Python, demoLineEdit.py.
Kode file skrip Python yang dihasilkan, demoLineEdit.py
- Perlakukan kode dalam file demoLineEdit.py sebagai file header, dan impor ke file dari mana Anda akan menjalankan desain antarmuka penggunanya.
- Mari kita buat file Python lain dengan nama callLineEdit.py dan impor kode demoLineEdit.py ke dalamnya sebagai berikut:
import sys
from PyQt5.QtWidgets import QDialog, QApplication
from demoLineEdit import *
class MyForm(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.ButtonClickMe.clicked.connect(self.dispmessage)
self.show()
def dispmessage(self):
self.ui.labelResponse.setText("Hello "
+self.ui.lineEditName.text())
if __name__=="__main__":
app = QApplication(sys.argv)
w = MyForm()
w.show()
sys.exit(app.exec_())
Bagaimana itu bekerja…
File demoLineEdit.py sangat mudah dimengerti. Kelas dengan nama objek tingkat atas dibuat, dengan Ui_ diawali. Karena objek tingkat atas yang digunakan dalam aplikasi kita adalah Dialog, kelas Ui_Dialog dibuat dan menyimpan elemen antarmuka widget kita. Kelas itu memiliki dua metode, setupUi () dan retranslateUi (). Metode setupUi () mengatur widget; itu menciptakan widget yang Anda gunakan saat mendefinisikan antarmuka pengguna di Qt Designer. Metode ini membuat widget satu per satu dan juga mengatur propertinya. Metode setupUi () mengambil argumen tunggal, yang merupakan widget tingkat atas di mana antarmuka pengguna (widget anak) dibuat. Dalam aplikasi kami, ini adalah turunan dari QDialog. Metode retranslateUi () menerjemahkan antarmuka.
Mari kita memahami apa yang dilakukan oleh callLineEdit.py:
- Itu mengimpor modul yang diperlukan. QWidget adalah kelas dasar dari semua objek antarmuka pengguna di PyQt5.
- Itu menciptakan kelas MyForm baru yang mewarisi dari kelas dasar, QDialog.
- Ini memberikan konstruktor default untuk QDialog. Konstruktor default tidak memiliki induk, dan widget tanpa induk dikenal sebagai jendela.
- Penanganan acara di PyQt5 menggunakan sinyal dan slot. Sinyal adalah peristiwa, dan slot adalah metode yang dieksekusi pada terjadinya sinyal. Misalnya, ketika Anda mengklik tombol tekan, peristiwa diklik (), juga dikenal sebagai sinyal, terjadi. Metode connect () menghubungkan sinyal dengan slot. Dalam kasus ini, slot adalah metode: dispmessage (). Artinya, ketika pengguna mengklik tombol push, metode dispmessage () akan dipanggil. diklik () adalah acara di sini dan loop penanganan acara menunggu acara terjadi dan kemudian mengirimkannya untuk melakukan beberapa tugas. Loop penanganan peristiwa terus bekerja hingga metode exit () dipanggil atau widget utama dihancurkan.
- Itu menciptakan objek aplikasi dengan aplikasi nama melalui metode QApplication (). Setiap aplikasi PyQt5 harus membuat objek aplikasi sys.argv yang berisi daftar argumen dari baris perintah, dan diteruskan ke metode saat membuat objek aplikasi. Parameter sys.argv membantu meneruskan dan mengendalikan atribut startup skrip.
- Sebuah instance dari kelas MyForm dibuat dengan nama w.
Metode show () akan menampilkan widget di layar. - Metode dispmessage () melakukan penanganan event untuk tombol push.
- Ini menampilkan teks Hello, bersama dengan nama yang dimasukkan dalam widget Edit Baris.
- Metode sys.exit () memastikan keluar yang bersih, melepaskan sumber daya memori.
Saat menjalankan program sebelumnya, Anda mendapatkan jendela dengan widget Line Edit dan Push Button, seperti yang ditunjukkan pada tangkapan layar berikut. Ketika tombol push dipilih, metode perpindahan () akan dieksekusi, menampilkan pesan Hello bersama dengan nama pengguna yang dimasukkan dalam widget Edit Baris: