【发布时间】:2016-10-19 08:12:35
【问题描述】:
我有一个使用 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 应用程序将版本信息打印到标准控制台输出?
【问题讨论】:
-
Qt 安装程序框架怎么样?它为已部署的应用程序提供更新功能,就像您从 Qt 安装中了解的那样。 doc.qt.io/qtinstallerframework/index.html
-
我宁愿实现一个简单的解决方案,然后增加复杂性,而不是使用现成的解决方案并试图找出代码背后的原因。
-
好,你的选择。那么为什么不使用一个简单的文本文件,其中包含驻留在应用程序目录中的当前版本。
-
这也可能是一个解决方案,如果我的原始问题仍未得到解答,我将使用它。
标签: c++ qt versioning