如何在Linux上的Qt项目中添加和查看版本信息?

Aqu*_*irl 3 linux deployment qt

考虑到这一点:http://www.openguru.com/2009/11/qt-best-way-to-set-application-version.html

我加入VERSION = 1.0的.pro当前正在运行我的Qt项目的文件
Ubuntu 12.04.4 LTS使用桌面环境LXDE.

清理,qmaked,再次建立,但现在的问题是如何查看版本信息.

当我右键单击可执行文件时,我只能看到以下字段:
类型,大小,位置,MIME类型,已修改,所有者,部分,权限

如何查看版本信息?

Rei*_*ica 8

没有从Linux系统上的应用程序获取版本信息的标准方法.通常--version为此提供命令行开关.但是没有freedesktop.org标准可以提供更具描述性的版本信息.这些.desktop文件不包含此类信息 - 版本有文件格式版本,而不是应用程序版本.

所以你所寻求的只是没有实现.但如果这--version是一个足够的界面,那么这就是人们如何做到的.

您的.pro文件需要包含版本设置并将版本传递给C/C++编译器:

VERSION = 1.0.0
DEFINES += VERSION_STRING=\\\"$${VERSION}\\\"
Run Code Online (Sandbox Code Playgroud)

然后可以通过传递--version参数从命令行显示该版本.您可以利用自Qt 5.2以来可用的命令行解析器:

#include <QCoreApplication>
#include <QCommandLineParser>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    a.setApplicationName("version-cmd");
    a.setApplicationVersion(VERSION_STRING);
    QCommandLineParser parser;
    parser.addVersionOption();
    parser.process(a);
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

输出:

$ version-cmd --version
version-cmd 1.0.0
$
Run Code Online (Sandbox Code Playgroud)

如果你不使用至少Qt 5.2,那么很容易检查是否a.args().contains("--version")并采取行动.