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 diperlukanimport 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 diperlukanimport 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 diperlukanimport 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.