PyQt - QDialog 类



一个QDialog 控件呈现一个顶级窗口,主要用于收集用户的响应。它可以配置为模态(阻止其父窗口)或非模态(可以绕过对话框窗口)。

PyQt API 有许多预配置的对话框控件,例如 InputDialog、FileDialog、FontDialog 等。

示例

在下面的示例中,对话框窗口的 WindowModality 属性决定它是模态还是非模态。可以将对话框上的任意一个按钮设置为默认按钮。当用户按下 Escape 键时,对话框将通过 QDialog.reject() 方法被丢弃。

顶级 QWidget 窗口上的一个 PushButton 单击时会生成一个对话框窗口。对话框框在其标题栏上没有最小化和最大化控件。

用户无法将此对话框框置于后台,因为其 WindowModality 设置为 ApplicationModal。

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()

以上代码产生以下输出:

QDialog Class Output
广告