PyQt5 QDialog类
QDialog 是一个顶层窗口小部件,主要用于收集用户的响应。它可以配置为 模态 (它会阻塞其父窗口)或 非模态 (对话框窗口可以被绕过)。
PyQt API有许多预配置的对话框小部件,例如InputDialog,FileDialog,FontDialog等。
示例
在下面的示例中,对话框窗口的 WindowModality 属性决定它是模态还是非模态。对话框上的任意一个按钮可以设置为默认值。当用户按下Escape键时,对话框会通过 QDialog.reject() 方法关闭。
在顶层QWidget窗口上的PushButton被点击时,会弹出一个对话框窗口。对话框的标题栏上没有最小化和最大化控件。
由于 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()
以上代码产生以下输出。单击主窗口中的按钮,对话框弹出 –