Python

Cara Menggunakan PyQt QMessageBox

Cara Menggunakan PyQt QMessageBox
Kotak pesan digunakan dalam aplikasi GUI untuk memberikan informasi yang diperlukan bagi pengguna atau meminta pengguna untuk mengambil tindakan berdasarkan pesan. Empat jenis kotak mesej dapat dibuat untuk setiap aplikasi GUI, termasuk kotak pesan maklumat, kotak pesan peringatan, kotak pesan kritikal, dan kotak pesan pertanyaan. The QMessageBox kelas PyQt digunakan di Python untuk membuat kotak mesej. Tutorial ini menunjukkan kepada anda cara menggunakan kelas QMessageBox untuk membuat pelbagai kotak mesej.

Kaedah yang diperlukan

Kelas QMessageBox mempunyai banyak kaedah untuk membuat pelbagai jenis kotak mesej. Beberapa kaedah kelas QMessageBox yang lebih biasa dijelaskan di bawah:

Nama Kaedah  Tujuan
setTitle () Digunakan untuk memaparkan tajuk tersuai.
setTeks () Digunakan untuk mengatur teks mesej utama.
setDetailText () Digunakan untuk memaparkan tetingkap dengan butang perincian; teks mesej akan muncul setelah pengguna mengklik butang.
setInformativeText Digunakan untuk memaparkan mesej tambahan.
setIcon () Digunakan untuk menetapkan ikon di kotak mesej berdasarkan jenis mesej.
setWindowTitle () Digunakan untuk menetapkan tajuk tetingkap mesej.
setDefaultButton () Digunakan untuk menetapkan butang di kotak mesej lalai; butang akan mengeluarkan isyarat yang diklik apabila Masukkan kekunci ditekan.
setEscapeButton () Digunakan untuk menetapkan sebarang butang agar berfungsi sebagai kunci pelarian; butang akan mengeluarkan isyarat yang diklik apabila Melarikan diri kekunci ditekan.
setStandardButtons () Berbagai butang standard dapat digunakan di kotak pesan berdasarkan jenis pesan, seperti OK, Ya, Tidak, Batal, Tutup, dll.

Penggunaan QMessageBox

Bahagian berikut dari tutorial ini memberikan contoh yang akan menunjukkan kepada anda cara membuat kotak mesej yang berbeza menggunakan kelas QMessageBox.

Contoh 1: Buat Kotak Mesej Maklumat

Skrip berikut akan membuat kotak mesej maklumat mudah menggunakan kelas QMessageBox. Kotak mesej jenis ini memberikan mesej maklumat untuk pengguna sahaja. okey adalah butang lalai di kotak mesej. Di sini, QMessageBox.Maklumat digunakan di setIcon () kaedah untuk memaparkan ikon maklumat di kotak mesej.

# Import modul yang diperlukan
import sys
dari PyQt5.QtWidgets mengimport QApplication, QMainWindow, QMessageBox
# Tentukan kelas untuk memaparkan mesej maklumat
MessageWindow kelas (QMainWindow):
def __init __ (diri):
# Panggil pembina ibu bapa
super ().__di dalamnya__()
# Buat objek kotak mesej
diri.msg = QMessageBox ()
# Tetapkan ikon maklumat
diri.msg.setIcon (QMessageBox.Maklumat)
# Tetapkan mesej utama
diri.msg.setText ("Tugas berjaya diselesaikan.")
# Tetapkan tajuk tetingkap
diri.msg.setWindowTitle ("Mesej Maklumat")
# Paparkan kotak mesej
diri.msg.tunjuk ()
# Buat objek aplikasi dan jalankan aplikasinya
app = QApplication (sys.berhujah)
Menang = MessageWindow ()
aplikasi.exec ()

Kotak mesej berikut akan muncul setelah skrip di atas dijalankan.

Contoh 2: Buat Kotak Mesej Amaran

Skrip berikut akan membuat kotak mesej amaran menggunakan kelas QMessageBox. Kotak mesej jenis ini memberikan mesej amaran untuk pengguna. The amaran digunakan di setIcon () kaedah untuk memaparkan ikon amaran di kotak mesej. The okey dan Batal butang ditambahkan ke kotak mesej menggunakan setStandardButtons () kaedah. Kaedah khas yang dipanggil butang msg () didefinisikan dalam kelas untuk mengesan butang di kotak mesej yang telah diklik oleh pengguna. Sekiranya pengguna mengklik okey butang, kemudian teks, 'Butang OK ditekan,'akan mencetak; jika tidak, 'Butang Batal ditekan'teks akan dicetak.

# Import modul yang diperlukan
import sys
dari PyQt5.QtWidgets mengimport QApplication, QMainWindow, QMessageBox
# Tentukan kelas untuk memaparkan mesej maklumat
MessageWindow kelas (QMainWindow):
def __init __ (diri):
# Panggil pembina ibu bapa
super ().__di dalamnya__()
# Buat objek kotak mesej
diri.msgWarning = QMessageBox ()
# Tetapkan ikon Amaran
diri.msgPeringatan.setIcon (QMessageBox.Amaran)
# Tetapkan mesej utama
diri.msgPeringatan.setTeks ("Nama pemboleh ubah tidak ditentukan.")
# Tetapkan dua butang untuk kotak mesej
diri.msgPeringatan.setStandardButtons (QMessageBox.Ok | QMessageBox.Batal)
# Panggil kaedah khusus pada butang yang diklik
diri.msgPeringatan.butangKlik.menyambung (diri.butang msg)
# Tetapkan tajuk tetingkap
diri.msgPeringatan.setWindowTitle ("Mesej Amaran")
# Paparkan kotak mesej
diri.msgPeringatan.tunjuk ()
# Tentukan fungsi untuk butang
def msgButton (diri, i):
jika saya.teks () == '& OK':
cetak ("Butang OK ditekan.")
lain:
cetak ("Butang Batal ditekan.")
# Buat objek aplikasi dan jalankan aplikasinya
app = QApplication (sys.berhujah)
Menang = MessageWindow ()
aplikasi.exec_ ()

Kotak mesej berikut akan muncul setelah skrip di atas dijalankan.

Sekiranya pengguna mengklik okey butang, output berikut akan muncul.

Contoh 3: Buat a Soalan Amaran Mesej

Skrip berikut akan membuat kotak mesej soalan menggunakan kelas QMessageBox. Kotak mesej jenis ini memberikan mesej pertanyaan kepada pengguna untuk mengambil tindakan tertentu berdasarkan keputusan pengguna. Di sini, QMessageBox.Soalan digunakan di setIcon () kaedah untuk memaparkan ikon soalan di kotak mesej. The Ya dan Tidak butang ditambahkan ke kotak mesej menggunakan setStandardButtons () kaedah. The Tidak butang ditetapkan sebagai butang lalai menggunakan kaedah setDefaultButton (). Kaedah khas yang dipanggil butang msg () didefinisikan dalam kelas untuk mengesan butang di kotak mesej yang telah diklik oleh pengguna.

# Import modul yang diperlukan
import sys
dari PyQt5.QtWidgets mengimport QApplication, QMainWindow, QMessageBox
# Tentukan kelas untuk memaparkan mesej maklumat
MessageWindow kelas (QMainWindow):
def __init __ (diri):
# Panggil pembina ibu bapa
super ().__di dalamnya__()
# Buat objek kotak mesej
diri.msgQuestion = QMessageBox ()
# Tetapkan ikon Amaran
diri.Pertanyaan msg.setIcon (QMessageBox.Soalan)
# Tetapkan mesej utama
diri.Pertanyaan msg.setText ("Adakah anda mahu meneruskan?")
# Tetapkan dua butang untuk kotak mesej
diri.Pertanyaan msg.setStandardButtons (QMessageBox.Ya | QMessageBox.Tidak)
diri.Pertanyaan msg.setDefaultButton (QMessageBox.Tidak)
# Panggil kaedah khusus pada butang yang diklik
diri.Pertanyaan msg.butangKlik.menyambung (diri.butang msg)
# Tetapkan tajuk tetingkap
diri.Pertanyaan msg.setWindowTitle ("Menanyakan Soalan kepada pengguna")
# Paparkan kotak mesej
diri.Pertanyaan msg.tunjuk ()
# Tentukan fungsi untuk butang
def msgButton (diri, i):
jika saya.teks () == '& Ya':
cetak ("Tugas itu berterusan ...")
lain:
cetak ("Anda telah membatalkan tugas.")
# Buat objek aplikasi dan jalankan aplikasinya
app = QApplication (sys.berhujah)
Win = MessageWindow ()
aplikasi.exec_ ()

Kotak mesej berikut akan muncul setelah skrip di atas dijalankan.

Sekiranya pengguna mengklik Masukkan kekunci tanpa memilih sebarang butang, kemudian Tidak butang akan diaktifkan secara lalai, dan output berikut akan muncul:

Kesimpulannya

Dalam tutorial ini, tiga jenis kotak mesej dibuat menggunakan kelas QMessageBox. Semoga tutorial ini dapat membantu anda memahami penggunaan kelas ini dengan lebih baik. Anda sekarang seharusnya dapat membuat kotak mesej untuk aplikasi PyQt.

Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
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 ...