PyQt5 - QDialog-Klasse

EIN QDialogDas Widget zeigt ein Fenster der obersten Ebene, das hauptsächlich zum Sammeln von Antworten vom Benutzer verwendet wird. Es kann so konfiguriert werdenModal (wo es sein übergeordnetes Fenster blockiert) oder Modeless (Das Dialogfenster kann umgangen werden).

Die PyQt-API verfügt über eine Reihe vorkonfigurierter Dialog-Widgets wie InputDialog, FileDialog, FontDialog usw.

Beispiel

Im folgenden Beispiel WindowModalityDas Attribut des Dialogfensters entscheidet, ob es modal oder modelllos ist. Jede Schaltfläche im Dialogfeld kann als Standard festgelegt werden. Der Dialog wird von verworfenQDialog.reject() Methode, wenn der Benutzer die Escape-Taste drückt.

Ein PushButton in einem QWidget-Fenster der obersten Ebene erzeugt beim Klicken ein Dialogfenster. Ein Dialogfeld verfügt in seiner Titelleiste nicht über Steuerelemente zum Minimieren und Maximieren.

Der Benutzer kann dieses Dialogfeld nicht im Hintergrund ablegen, da seine WindowModality auf eingestellt ist 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()

Der obige Code erzeugt die folgende Ausgabe. Klicken Sie im Hauptfenster auf die Schaltfläche und das Dialogfeld wird angezeigt.