接下来这个专题介绍PyQt的一些内容 教程翻译自: [https://www.tutorialspoint.com/pyqt/pyqt_introduction.htm](https://www.tutorialspoint.com/pyqt/pyqt_introduction.htm) 由于本人也是学习状态,翻译可能不准确,请及时指出,我会很快修正 一些关键字会直接使用英文 目前该专题为纯理论,实际操作在完成后有演示 PyQt版本: PyQt4 ##1. 什么是QDialog 对话框类一般用来收集用户的响应 它能配置成如下2个形式: **Modal** 他会阻塞(Block)父窗口,即取消前无法操作父窗口 **Modeless** 他可以被跳过(bypass)而在后台运行 他们由windowModality 属性决定 ##2.应用举例 按Escape键时,对话框由 QDialog.reject() 方法摧毁 如下代码当点击PushButton时弹出对话框 对话框无法在后台运行因为属性为Model 点击 ``` import sys from PyQt4.QtGui import * from PyQt4.QtCore import * def window(): app = QApplication(sys.argv) w = QWidget() b = QPushButton(w) b.setText("Hello World!") b.move(50,50) b.clicked.connect(showdialog) w.setWindowTitle("PyQt Dialog demo") w.show() sys.exit(app.exec_()) def showdialog(): d = QDialog() b1 = QPushButton("ok",d) b1.move(50,50) d.setWindowTitle("Dialog") d.setWindowModality(Qt.ApplicationModal) d.exec_() if __name__ == '__main__': window() ``` [image:144 size:orig]