1. 程式人生 > 實用技巧 >對話方塊類控制元件-QDialog

對話方塊類控制元件-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模態,使用者只有關閉所彈出的對話方塊視窗後,才能關閉主視窗。