📜  PyQt-QDialog类

📅  最后修改于: 2020-11-08 08:10:22             🧑  作者: Mango


QDialog小部件显示一个顶层窗口,该窗口通常用于收集用户的响应。可以将其配置为“模态” (阻止其父窗口)或“无模式” (可以跳过对话框窗口)。

PyQt API具有许多预先配置的Dialog小部件,例如InputDialog,FileDialog,FontDialog等。

在下面的示例中,“对话”窗口的WindowModality属性确定它是模式的还是无模式的。对话框上的任何一个按钮都可以设置为默认按钮。当用户按下Escape键时,该对话框将被QDialog.reject()方法丢弃。

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

由于其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类输出