PyQt5 - klasa QDialog
ZA QDialogwidget prezentuje okno najwyższego poziomu używane głównie do zbierania odpowiedzi od użytkownika. Można go skonfigurować tak, aby byłModal (gdzie blokuje swoje okno nadrzędne) lub Modeless (okno dialogowe można pominąć).
PyQt API ma wiele wstępnie skonfigurowanych widżetów Dialog, takich jak InputDialog, FileDialog, FontDialog itp.
Przykład
W poniższym przykładzie WindowModalityatrybut okna dialogowego decyduje, czy jest modalny czy niemodalny. Każdy przycisk w oknie dialogowym można ustawić jako domyślny. Okno dialogowe jest odrzucane przezQDialog.reject() metoda, gdy użytkownik naciśnie klawisz Escape.
Kliknięcie przycisku PushButton w oknie QWidget najwyższego poziomu powoduje utworzenie okna dialogowego. Okno dialogowe nie ma elementów sterujących minimalizacją i maksymalizacją na pasku tytułu.
Użytkownik nie może zmienić pozycji tego okna dialogowego w tle, ponieważ jego WindowModality jest ustawiona na 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()
Powyższy kod daje następujące dane wyjściowe. Kliknij przycisk w oknie głównym i pojawi się okno dialogowe -