对话框类控件-QDialog

QDialog类的子类主要有QMessageBox、QFileDialog、QFontDialog、QInputDialog等。

QDialog类中的常用方法:

  setWindowTitle()    设置对话框标题

  setWindowModality()  设置窗口模态。取值如下:

               Qt.NonModal,非模态,可以和程序的其他窗口交互

               Qt.WindowModal,窗口模态,程序在未处理完当前对话框时,将阻止和对话框的父窗口进行交互。

               Qt.ApplicationModal,应用程序模态,阻止和任何其他窗口进行交互

案例20  QDialog的使用

 

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication, QDialog, QPushButton


class DialogDemo(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setWindowTitle("Dialog 例子")
        self.resize(350, 300)

        self.btn = QPushButton(self)
        self.btn.setText("弹出对话框")
        self.btn.move(50, 50)
        self.btn.clicked.connect(self.showdialog)

    def showdialog(self):
        dialog = QDialog()
        btn = QPushButton("OK", dialog)
        btn.move(50, 50)
        dialog.setWindowTitle("Dialog")
        dialog.setWindowModality(Qt.ApplicationModal)
        dialog.exec_()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    demo = DialogDemo()
    demo.show()
    sys.exit(app.exec_())

由于Dialog窗口的WindowModality属性设置为Qt.ApplicationModal模态,用户只有关闭所弹出的对话框窗口后,才能关闭主窗口。

posted @ 2020-07-31 16:28  Laney_Sun  阅读(184)  评论(0编辑  收藏  举报