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

时间:2014-07-16 05:20:43

标签: linux qt deployment

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

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

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

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

如何查看版本信息?

3 个答案:

答案 0 :(得分:8)

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

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

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

VERSION = 1.0.0
DEFINES += VERSION_STRING=\\\"$${VERSION}\\\"

然后可以通过传递--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();
}

输出:

$ version-cmd --version
version-cmd 1.0.0
$

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

答案 1 :(得分:0)

您可以添加命令行开关--version来获取应用程序版本

答案 2 :(得分:0)

现在很明显,在recognized desktop entry keyswww.freedesktop.org中没有显示选项列表的显式版本,但它们确实有其他字段可用于保存版本信息。

其中一个字段是 GenericName 该字段在GNOME桌面环境中列为 描述

因此,如果我在此字段中添加版本信息,如下所示:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=excuse
Name[en_IN]=excuse
Exec=/usr/bin/bc
Comment[en_IN]=asdsadsad
StartupNotify=true
GenericName[en_IN]=Version 12.3
Icon=/usr/share/lxpanel/images/capslock-off.png

右键单击显示如下:

enter image description here

因此,简而言之,我们可以选择将可执行文件存储在存储普通Linux可执行文件的/usr/bin/中,然后在桌面或其他位置创建其快捷方式。 然后我们将能够右键单击此快捷方式并获取版本信息。