Qt5.5为什么没有显示错误信息?

时间:2016-03-24 09:09:52

标签: c++ qt5.5

我使用Qt5.5编写了一个应用程序,如果在应用程序启动时遇到错误,我想使用QErrorMessage来显示错误。

我已添加:

    QErrorMessage errmsg(this);
    errmsg.showMessage("HELLO WORLD");

此代码已插入到我的主窗口构造函数的末尾,没有显示任何内容,为什么?

1 个答案:

答案 0 :(得分: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()消息。这是最有用的   没有控制台可用于显示警告的环境   错误消息。