我有一个使用 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/