如何将Qt GUI应用程序的版本打印到控制台

时间:2016-06-17 13:09:32

标签: c++ qt versioning

我有一个使用Qt Widgets编写的GUI应用程序。我已经添加了版本控制,我也计划编写一个更新管理器。为了使其正常工作,更新管理员必须能够确定我的应用程序的版本。我想通过使用版本开关运行我的应用程序然后解析它的输出来实现这一点。我做了一个研究,我发现Qt有一些内置的解决方案。

以下是一个例子:

#include "mainwindow.h"
#include <QApplication>
#include <QCommandLineParser>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QApplication::setApplicationVersion("1.0.0");

    QCommandLineParser parser;
    auto versionOption = parser.addVersionOption();
    parser.process(app);

    if (parser.isSet(versionOption))
    {
        MainWindow w;
        w.show();
        return app.exec();
    }

    return 0;
}

如果我使用-v或--version命令行开关启动此应用程序,我会收到一个包含版本信息的消息框。

我需要实现相同的目标,只有信息才能打印到标准输出。如果使用版本开关启动应用程序,则应仅在控制台中显示该版本,然后关闭。

如何使用GUI应用程序将版本信息打印到标准控制台输出?

1 个答案:

答案 0 :(得分:2)

当我们在评论中清除了一些要点时,让我们继续前进。 ;)

查看文档(http://doc.qt.io/qt-5/qapplication.html#details)。在详细信息部分中,您将看到如何正确解析和处理命令行选项的合理方法。

在这里(https://stackoverflow.com/a/3886128/6385043)你可以看到写入标准输出的可能性。请注意QDebug警告。

在我看来,坚持使用文本文件。您可以使用变量VERSION qmake 构建期间生成它,您也可以将其用于QApplication::setApplicationVersion(QString)