【问题标题】:How to redirect QMessageBox text to a Textfile如何将 QMessageBox 文本重定向到文本文件
【发布时间】:2023-03-03 18:37:02
【问题描述】:

在我的项目中很多时候我都在使用 QMessageBox。这是警告/信息。例如如果我正在进行一些验证,那么当时我正在使用一些 QMessageBox::information(...) ,或者如果我想限制用户不要移出特定页面,那么我正在使用 QMessageBox::critical(...) 。 我知道“如何将 qDebug 输出重定向到文件”。我也想为 QMessagebox 做同样的事情。这样我将在我的项目文件夹中维护一个文本文件。每当应用程序运行时,如果用户通过 QMessagebox 遇到一些消息,则应将其重定向到该文本文件。这样,在关闭应用程序后,用户就会有一个小的消息详细列表,无论他在运行应用程序期间遇到了什么。

请帮我写这段代码..

提前谢谢xx。

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    您可以声明自己的静态信息、警告和关键函数,这些函数将显示原始 QMessageBox 并写入一些内容以记录。

    static StandardButton information(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton);
    
    StandardButton information(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons, StandardButton defaultButton) 
    {
       qDebug() << "writing to log";
       return QMessageBox::information (parent, title, text, buttons, defaultButton)
    }
    

    【讨论】:

    • 有类似 qInstallMsgHandler(..) 的东西吗?因为很多次我在我的项目中使用了这个 QMessagebox(),所以我必须在我的项目中做很多改变。您能否提供一些替代解决方案..非常感谢您的回复...
    • 汉克是对的,他有答案。您可以通过使用 QtCreator refactoring 中的 build 轻松更改所有 QMessageBox 等 - 右键单击​​单词(变量,类型,...)并选择 refactoring,然后选择您想要的。对我来说,ctrl+shift+R - 重命名光标下的符号是非常有用的功能。试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    相关资源
    最近更新 更多