PyQt5 - QDialog 类

  • 简述

    QDialog小部件呈现一个顶级窗口,主要用于收集用户的响应。它可以配置为Modal(它阻止其父窗口)或Modeless(可以绕过对话窗口)。
    PyQt API 有许多预配置的 Dialog 小部件,例如 InputDialog、FileDialog、FontDialog 等。
  • 例子

    在以下示例中,WindowModalityDialog 窗口的属性决定它是模态的还是非模态的。对话框上的任何一个按钮都可以设置为默认值。该对话框被丢弃QDialog.reject()用户按下 Escape 键时的方法。
    当点击顶级 QWidget 窗口上的 PushButton 时,会生成一个 Dialog 窗口。对话框的标题栏上没有最小化和最大化控件。
    用户无法在后台将此对话框降级,因为它的 WindowModality 设置为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()
    
    上面的代码产生以下输出。单击主窗口中的按钮并弹出对话框 -
    QDialog 类输出