Qt5.5 为啥不显示错误信息?
Posted
技术标签:
【中文标题】Qt5.5 为啥不显示错误信息?【英文标题】:Qt5.5 why isn't error message displayed?Qt5.5 为什么不显示错误信息? 【发布时间】:2016-03-24 09:09:51 【问题描述】:我正在使用Qt5.5并编写了一个应用程序,如果在应用程序启动过程中遇到错误,我想使用QErrorMessage来显示错误。
我已添加:
QErrorMessage errmsg(this);
errmsg.showMessage("HELLO WORLD");
这段代码已经插入到我的主窗口构造函数的末尾,什么都没有显示,为什么?
【问题讨论】:
【参考方案1】:在您可以阅读的文档中:
显示给定的消息,消息,并立即返回。如果用户 已请求不再显示该消息,此功能 什么都不做。
这意味着,一旦errmsg
被销毁,就不能再显示任何消息。您必须使用 QErrorMessage
类作为成员/全局变量:
this->errmsg = new QErrorMessage(this);
this->errmgs->showMessage("HELLO WORLD");
或者,您可以使用QErrorMessage::qtHandler()
- 这将返回错误消息处理程序的全局实例:
QErrorMessage::qtHandler()->showMessage("HELLO WORLD");
但如果你这样做,请注意 QDebug 也会使用这个:
静态 qtHandler() 函数使用 qInstallMessageHandler() 并创建一个 QErrorMessage 显示 qDebug()、qWarning() 和 qFatal() 消息。这是最有用的 没有控制台可用于显示警告和 错误消息。
【讨论】:
谢谢,可能是因为我的应用程序正在终止,我想向用户显示一条消息,因为启动过程中出现问题,应用程序无法运行。如果应用程序死了,这会阻止显示错误消息吗? 是的,会的。您必须使用QMessageBox::critical
来执行此操作。这是一个阻塞调用,将等待用户关闭对话框。以上是关于Qt5.5 为啥不显示错误信息?的主要内容,如果未能解决你的问题,请参考以下文章
为啥会出现以下错误:“尝试附加到数据库失败,并显示以下信息:用户 'x\x' 登录失败。?