Python PyQt5:如何使用PyQt5显示错误消息

问题描述 投票:3回答:5

在普通的Python(3.x)中,我们总是使用来自tkinter模块的showerror()来显示错误消息,但是我应该在PyQt5中做些什么来显示完全相同的消息类型呢?

python message messagebox pyqt5
5个回答
7
投票

Qt包括一个error-message specific dialog class QErrorMessage,您应该使用它来确保您的对话框符合系统标准。要显示对话框,只需创建一个对话框对象,然后调用.showMessage()。例如:

error_dialog = QtWidgets.QErrorMessage()
error_dialog.showMessage('Oh no!')

这是一个最小的工作示例脚本:

import PyQt5
from PyQt5 import QtWidgets

app = QtWidgets.QApplication([])

error_dialog = QtWidgets.QErrorMessage()
error_dialog.showMessage('Oh no!')

app.exec_()

4
投票

不要忘记调用.exec()_来显示错误:

msg = QMessageBox()
msg.setIcon(QMessageBox.Critical)
msg.setText("Error")
msg.setInformativeText('More information')
msg.setWindowTitle("Error")
msg.exec_()

3
投票

以下应该有效:

msg = QMessageBox()
msg.setIcon(QMessageBox.Critical)
msg.setText("Error")
msg.setInformativeText(e)
msg.setWindowTitle("Error")

它不是完全相同的消息类型(不同的GUI),但相当接近。 e是python3中Error的表达式

希望有帮助,Narusan


3
投票

以上所有选项对我来说都不适用于使用Komodo Edit 11.0。刚刚返回“1”或未执行“-1073741819”。

对我有用的是:qazxsw poi解决方案。

Vanloc's

1
投票

要显示消息框,您可以调用此def:

def my_exception_hook(exctype, value, traceback):
    # Print the error and traceback
    print(exctype, value, traceback)
    # Call the normal Exception hook after
    sys._excepthook(exctype, value, traceback)
    sys.exit(1)

# Back up the reference to the exceptionhook
sys._excepthook = sys.excepthook

# Set the exception hook to our wrapping function
sys.excepthook = my_exception_hook
© www.soinside.com 2019 - 2024. All rights reserved.