PyQt5 - Kelas QDialog

SEBUAH QDialogwidget menyajikan jendela tingkat atas yang sebagian besar digunakan untuk mengumpulkan respons dari pengguna. Ini dapat dikonfigurasi menjadiModal (di mana ia memblokir jendela induknya) atau Modeless (jendela dialog dapat dilewati).

PyQt API memiliki sejumlah widget Dialog yang telah dikonfigurasi sebelumnya seperti InputDialog, FileDialog, FontDialog, dll.

Contoh

Dalam contoh berikut, WindowModalityatribut jendela Dialog memutuskan apakah itu modal atau modeless. Tombol mana pun pada dialog dapat disetel menjadi default. Dialog dibuang olehQDialog.reject() metode saat pengguna menekan tombol Escape.

Sebuah Tombol Tekan pada jendela QWidget tingkat atas, saat diklik, menghasilkan jendela Dialog. Kotak dialog tidak memiliki kontrol meminimalkan dan memaksimalkan pada bilah judulnya.

Pengguna tidak dapat membuang kotak dialog ini di latar belakang karena WindowModality-nya diatur ke ApplicationModal.

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

def window():
   app = QApplication(sys.argv)
   w = QWidget()
   btn = QPushButton(w)
   btn.setText("Hello World!")
   btn.move(100,50)
   btn.clicked.connect(showdialog)
   w.setWindowTitle("PyQt Dialog demo")
   w.show()
   sys.exit(app.exec_())

def showdialog():
   dlg = QDialog()
   b1 = QPushButton("ok",dlg)
   b1.move(50,50)
   dlg.setWindowTitle("Dialog") 9. PyQt5 — QDialog Class
   dlg.setWindowModality(Qt.ApplicationModal)
   dlg.exec_()

if __name__ == '__main__':
   window()

Kode di atas menghasilkan keluaran sebagai berikut. Klik tombol di jendela utama dan kotak dialog muncul -