PyQt5 消息框

在本文中,你将学习如何创建 PyQt5 消息框: 要显示消息框,我们需要导入 QMessageBox

PyQt5 消息框

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox

我们使用方法 QMessageBox.question() 来显示消息框。

PyQt5 消息框代码

复制下面的代码以显示消息框。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot

class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 messagebox - tastones.com'
        self.left = 10
        self.top = 10
        self.width = 320
        self.height = 200
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        buttonReply = QMessageBox.question(self, 'PyQt5 message', "Do you like PyQt5?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if buttonReply == QMessageBox.Yes:
            print('Yes clicked.')
        else:
            print('No clicked.')

        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

消息框的更多按钮

我们来使用 QMessageBox.YesQMessageBox.No 可以轻松添加其他选项:

        buttonReply = QMessageBox.question(self, 'PyQt5 message', "Do you want to save?", QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel, QMessageBox.Cancel)
        print(int(buttonReply))
        if buttonReply == QMessageBox.Yes:
            print('Yes clicked.')
        if buttonReply == QMessageBox.No:
            print('No clicked.')
        if buttonReply == QMessageBox.Cancel:
            print('Cancel')

可用的按钮是:

  • QMessageBox.Cancel

  • QMessageBox.Ok

  • QMessageBox.Help

  • QMessageBox.Open

  • QMessageBox.Save

  • QMessageBox.SaveAll

  • QMessageBox.Discard

  • QMessageBox.Close

  • QMessageBox.Apply

  • QMessageBox.Reset

  • QMessageBox.Yes

  • QMessageBox.YesToAll

  • QMessageBox.No

  • QMessageBox.NoToAll

  • QMessageBox.NoButton

  • QMessageBox.RestoreDefaults

  • QMessageBox.Abort

  • QMessageBox.Retry

  • QMessageBox.Ignore