對話方塊類控制元件-QDialog
阿新 • • 發佈:2020-07-31
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模態,使用者只有關閉所彈出的對話方塊視窗後,才能關閉主視窗。