PyQt5 – QDialog类
一个QDialog widget展示了一个顶层窗口,主要用于收集用户的响应。它可以被配置为模态(它阻止它的父窗口)或无模式(对话窗口可以被绕过)。
PyQt API有许多预配置的对话框部件,如InputDialog、FileDialog、FontDialog等。
示例
在下面的例子中,对话窗口的WindowModality属性决定了它是模式化还是无模式化。对话框上的任何一个按钮都可以被设置为默认。当用户按下Escape键时,该对话框被QDialog.reject()方法丢弃。
顶层QWidget窗口上的一个PushButton,当被点击时,会产生一个Dialog窗口。对话框在其标题栏上没有最小化和最大化控制。
用户不能把这个对话框放在后台,因为它的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()
上述代码产生以下输出。点击主窗口中的按钮,弹出对话框 –