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

标签 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 应用将版本信息打印到标准控制台输出?

最佳答案

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

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

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

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

关于c++ - 如何将 Qt GUI 应用程序的版本打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37882421/

相关文章:

qt - QSettings 不能很好地处理 unicode

java - 如何在 Hibernate 中保存时增加版本字段,无论是否脏?

c++ - Qt:设置自定义小部件中小部件的最小大小

c++ - 在 C++ 中堆重载和读取文件的二维矩阵

c++ - Mat::checkVector 在 OpenCV 中做了什么?

c++ - 特征矩阵乘法

c++ - 如何为 qmlRegisterSingletonType 实现单例提供程序?

nuget - 如何在最新的.NET Core工具中实现版本自动递增?

laravel - 使用 laravel 对 api 输出进行版本控制的另一种方法?

c++ - 使用 'include wrapper' 是否被认为是不良做法/指示不良设计?