1. 程式人生 > >PyQt5 筆記6 -- 對話方塊(QDialog)

PyQt5 筆記6 -- 對話方塊(QDialog)

PyQt5 筆記6 – 對話方塊(QDialog)

1、主視窗彈出對話方塊

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QPushButton


class MainWindow(QMainWindow):
    """
    主視窗類
    """
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        # 設定主視窗的標題及大小
        self.setWindowTitle('主視窗')
        self.resize(400, 300)

        # 建立按鈕
        self.btn = QPushButton(self)
        self.btn.setText('彈出對話方塊')
        self.btn.move(50, 50)
        self.btn.clicked.connect(self.show_dialog)

    def show_dialog(self):
        self.dialog = Dialog()
        self.dialog.show()
        self.dialog.exec()


class Dialog(QDialog):
    """
    對話方塊類
    """
    def __init__(self, parent=None):
        super(Dialog, self).__init__(parent)

        # 設定對話方塊的標題及大小
        self.setWindowTitle('對話方塊')
        self.resize(200, 200)
        
        # 設定視窗為模態,使用者只有關閉彈窗後,才能關閉主介面
        dialog.setWindowModality(Qt.ApplicationModal)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    demo = MainWindow()
    demo.show()
    sys.exit(app.exec())

在這裡插入圖片描述