通過一個按鈕的點擊, 綁定一個函數,獲取當前按鈕被按下的文本, 根據文本,顯示對應的提示框
QMessageBox.py
""" 消息對話框 QMessageBox 1. 關於對話框 2. 錯誤對話框 3. 警告對話框 4. 提問對話框 5. 消息對話框 有2點差異 1. 顯示對話框圖標可能不同 2. 顯示的按鈕是不一樣的 """ import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt class QMessageBoxDemo(QWidget): def __init__(self): super(QMessageBoxDemo, self).__init__() self.initUI() def initUI(self): self.setWindowTitle("QMessageBox案例") self.resize(300, 400) layout = QVBoxLayout() self.button1 = QPushButton("顯示關於對話框") self.button1.clicked.connect(self.showDialog) self.button2 = QPushButton("顯示消息對話框") self.button2.clicked.connect(self.showDialog) self.button3 = QPushButton("顯示警告對話框") self.button3.clicked.connect(self.showDialog) self.button4 = QPushButton("顯示錯誤對話框") self.button4.clicked.connect(self.showDialog) self.button5 = QPushButton("顯示提問對話框") self.button5.clicked.connect(self.showDialog) layout.addWidget(self.button1) layout.addWidget(self.button2) layout.addWidget(self.button3) layout.addWidget(self.button4) layout.addWidget(self.button5) self.setLayout(layout) def showDialog(self): #獲得當前被按下的按鈕的文本內容 text = self.sender().text() #根據文本內容判斷哪種類型的框將被顯示 if text == "顯示關於對話框": QMessageBox.about(self, "關於", "這是一個關於對話框") elif text == "顯示消息對話框": reply = QMessageBox.information(self, "消息", "這是一個消息對話框", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) print(reply == QMessageBox.Yes) elif text == "顯示警告對話框": QMessageBox.warning(self, "警告", '這是一個警告對話框', QMessageBox.Retry | QMessageBox.No, QMessageBox.Retry) elif text == "顯示錯誤對話框": QMessageBox.critical(self, "錯誤", '這是一個錯誤對話框', QMessageBox.Retry | QMessageBox.No, QMessageBox.Retry) else: QMessageBox.question(self, "提問", '這是一個提問對話框', QMessageBox.Retry | QMessageBox.No, QMessageBox.Retry) if __name__ == "__main__": app = QApplication(sys.argv) main = QMessageBoxDemo() main.show() sys.exit(app.exec_())
主界面
關於對話框
消息對話框
警告對話框
錯誤對話框
疑問對話框