如何在PyQt4中添加自定义按钮到QMessageBox

2024-04-25 10:11:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个应用程序,它需要QMessageBox中的自定义按钮。我在QT设计器中创建了一个示例,如下所示。

enter image description here

我想在QMessageBox中完成这项工作。

我正在使用python 2.6.4和PyQt4。拜托,有人能帮忙吗。


Tags: 应用程序示例qt按钮pyqt4qmessagebox
2条回答

下面是一个从头开始构建自定义消息框的示例。

import sys
from PyQt4 import QtCore, QtGui


class Example(QtGui.QDialog):
    def __init__(self, parent=None):
        super(Example, self).__init__(parent)

        msgBox = QtGui.QMessageBox()
        msgBox.setText('What to do?')
        msgBox.addButton(QtGui.QPushButton('Accept'), QtGui.QMessageBox.YesRole)
        msgBox.addButton(QtGui.QPushButton('Reject'), QtGui.QMessageBox.NoRole)
        msgBox.addButton(QtGui.QPushButton('Cancel'), QtGui.QMessageBox.RejectRole)
        ret = msgBox.exec_()


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

manuel-gutierrez你为什么要继承QDilaog?您可以从QMessageBox继承。它更简单,代码更少

import sys
from PyQt4.QtGui import QMessageBox, QPushButton, QApplication
from PyQt4.QtCore import Qt

class ErrorWindow(QMessageBox):
    def __init__(self, parent=None):
        QMessageBox.__init__(self, parent)
        self.setWindowTitle("Example")

        self.addButton(QPushButton("Yes"), QMessageBox.YesRole )
        self.addButton(QPushButton("No"), QMessageBox.NoRole)
        self.addButton(QPushButton("Cancel"), QMessageBox.RejectRole)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = ErrorWindow()
    ex.setText("some error")
    ex.show()

    sys.exit(app.exec_())

相关问题 更多 >