在普通的Python(3.x)中,我们总是使用来自tkinter模块的showerror()来显示错误消息,但是我应该在PyQt5中做些什么来显示完全相同的消息类型呢?
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_()
不要忘记调用.exec()_来显示错误:
msg = QMessageBox()
msg.setIcon(QMessageBox.Critical)
msg.setText("Error")
msg.setInformativeText('More information')
msg.setWindowTitle("Error")
msg.exec_()
以下应该有效:
msg = QMessageBox()
msg.setIcon(QMessageBox.Critical)
msg.setText("Error")
msg.setInformativeText(e)
msg.setWindowTitle("Error")
它不是完全相同的消息类型(不同的GUI),但相当接近。 e
是python3中Error的表达式
希望有帮助,Narusan
要显示消息框,您可以调用此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