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

How to print version of a Qt GUI application to console

我有一个使用 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 应用程序将版本信息打印到标准控制台输出?

我们清除了评论中的一些要点,让我们继续。 ;)

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

在这里 () 您可以看到写入标准输出的可能性。注意 QDebug 警告。

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

一起使用