接下来这个专题介绍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]