首页 > 其他分享 >Qt 设置软件的版本信息

Qt 设置软件的版本信息

时间:2023-07-01 10:34:47浏览次数:37  
标签:Qt VERSION FILE 软件 版本信息 define

相关资料:https://blog.csdn.net/u012878602/article/details/119682389

 

Qt设置软件的版本等信息
对于Qt开发的软件,我们如何去方便的查看其软件的版本信息。这里提供了几种方式。

在运行程序期间设置版本信息
大部分的程序在运行之后都会提供一个关于的按钮,通过点击该按钮并弹出一个关于界面,则可以查看相关的程序信息。此关于界面为用户自定义的一个界面。或者可以在主界面的右下角显示出当前软件的版本信息。两种方式之间并不冲突。

Qt的QCoreApplication类提供一些软件版本信息的静态公共接口,如下所示。

//设置相关信息
QCoreApplication::setApplicationName("APPNAME");
QCoreApplication::setApplicationVersion("1.0.0.0");
QCoreApplication::setOrganizationName("Qt");
QCoreApplication::setOrganizationDomain("www.qt.com");

//取出相关信息
QString appName = QCoreApplication::applicationName();
QString appVersion = QCoreApplication::applicationVersion();
QString orgDomain = QCoreApplication::organizationDomain();
QString orgName = QCoreApplication::organizationName();
如果用户需要设置更多的信息,则需要自己去实现,可以将所有的版本信息放置于一个version.h的头文件中。如下所示。

#ifndef VERSION_H
#define VERSION_H

#define PRODUCT_ICON "myapp.ico" // 图标

#define FILE_VERSION 4,0,2,666 // 文件版本
#define FILE_VERSION_STR "4.0.2.666"
#define PRODUCT_VERSION 4,0,2,666 // 产品版本
#define PRODUCT_VERSION_STR "4.0.2.666"
#define COMPANY_NAME "Digia"
#define INTERNAL_NAME "MyApp.exe"
#define FILE_DESCRIPTION "Qt Creator based on Qt 5.7.0 (MSVC 2013, 32 bit)" // 文件说明
#define LEGAL_COPYRIGHT "Copyright 2008-2016 The Qt Company Ltd. All rights reserved." // 版权
#define ORIGINAL_FILE_NAME "MyApp.exe" // 原始文件名
#define PRODUCT_NAME "Qt Creator" // 产品名称
#define ORGANIZATION_DOMAIN "https://www.qt.io/" // 域名

#endif // VERSION_H

在不运行程序期间设置版本信息
有的时候我们不想运行软件或者当前环境不支持软件正常运行,那么此时该如何设置软件版本信息。

windows 平台下的RC文件
对于Qt工程来说,可以直接在.pro文件中设置相关的软件信息。代码示例如下。

#app.pro

#程序版本
VERSION = 1.0.0.0
#程序图标
RC_ICONS = app.ico
#公司名称
QMAKE_TARGET_COMPANY ="company"
#程序说明
QMAKE_TARGET_DESCRIPTION = "test app"
#版权信息
QMAKE_TARGET_COPYRIGHT = "Copyright(C) 2017"
#程序名称
QMAKE_TARGET_PRODUCT = "app"
#程序语言
#0x0800代表和系统当前语言一致
RC_LANG = 0x0800

则对于生成程序我们可以之间右键属性面板的详细信息中查看到设置软件信息。

当然Qt工程其实使用的windows平台下面的RC文件,那么我们也可以直接建立一个rc文件,在该文件中设置相关的软件信息。

rc文件如下:

#include "winres.h"
#include "version.h"

// 图标
IDI_ICON1 ICON PRODUCT_ICON

// 版本信息
VS_VERSION_INFO VERSIONINFO
FILEVERSION FILE_VERSION
PRODUCTVERSION PRODUCT_VERSION
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080404b0"
BEGIN
VALUE "CompanyName", COMPANY_NAME
VALUE "FileDescription", FILE_DESCRIPTION
VALUE "FileVersion", FILE_VERSION_STR
VALUE "InternalName", INTERNAL_NAME
VALUE "LegalCopyright", LEGAL_COPYRIGHT
VALUE "OriginalFilename", ORIGINAL_FILE_NAME
VALUE "ProductName", PRODUCT_NAME
VALUE "ProductVersion", PRODUCT_VERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 1200
END
END

这个时候只需要在.pro文件中引用该RC文件即可。RC_FILE += myapp.rc

linux 平台下设置软件信息
由于linux平台下面并没有RC文件,所以需要使用命令行来显示版本信息,即通过命令行执行 myApp -v 来显示版本信息。
相关相关代码如下:

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

//显示版本信息
if (a.arguments().size() == 1 && a.arguments().at(0) == "-v")
{
QString appInfo = "appInfo";
std::cout << appInfo.toStdString();
return a.exec();
}
}
配置文件记录软件信息
对于大型的集成系统来说,可以通过一个统一的配置文件来读取软件的配置信息,该配置文件必须由集成系统提供,各个子模块软件提供信息。

翻译

搜索

复制

<iframe></iframe>

标签:Qt,VERSION,FILE,软件,版本信息,define
From: https://www.cnblogs.com/FKdelphi/p/17518918.html

相关文章

  • Pyside6-QtCharts+psutil实战-绘制一个CPU监测工具
    今天是实战篇章,我们结合可以快速提升我们开发效率的工具一起开实战一波实时读取系统CPU使用情况的折线图。使用的开发工具QtDesigner来开发UI界面。十分便捷。使用起来也算比较的简单了,虽然也存在不少的BUG。对所需要的控件进行拖拽式,就OK。后续会出一个简单的视频录制。第二步,......
  • 软件工程经济学
    软件的分类按功能分类:系统软件、应用软件、支撑软件按软件工作方式:实时处理软件、多用户分时软件、交互式软件、批处理软件按软件的权益:商品软件、自由软件、共享软件按软件标准化程度:标准化软件、定制软件、半定制软件按软硬件关联程度:嵌入型软件、组织型软件、半独立型软......
  • Debian 12 (bookworm) 安装方法及其国内软件源
    摘要:Debian12(bookworm)已经于2023年6月份正式发布。以下为原来信息:Debian12(bookworm)预计于2023年中期发布,但是目前(2023年4月)已经处于硬冻结阶段。原计划是在2023年中发布正式版本,但“Bookwo...Debian12(bookworm)已经于2023年6月份正式发布。以下为原来信息:De......
  • 【三】MySQL数据库之MySQL软件基本管理
    【三】MySQL数据库之MySQL软件基本管理关于Linux版本的基本管理与破解密码详情:【1】登录,设置密码(1)初始状态下,管理员root,密码为空,默认只允许从本机登录localhost(2)设置密码[root@egon~]#mysqladmin-urootpassword"123"(3)设置初始密码由于原密码为空,因此-p可以......
  • 软件工程国家标准
    1、标准化基础知识1.1、标准的层次国际标准国家标准行业标准地方标准企业标准1.2、标准的类型强制性标准推荐性标准1.3、标准的表示表1国家标准代号序号代号含义1GB中华人民共和国强制性国家标准2GB/T中华人民共和国推荐性国家标准3GB/Z中华人民共和国国家标准化指导性技术文件表2......
  • 一文拆解“复杂软件”的无代码配置逻辑
    最近教研组的小伙伴们收到了一些用户在试用smardaten过程中的困惑。为了解答大家的疑问,今天特别邀请了教研组的美女小姐姐,以一个比较简单易理解的场景“疫情填报”,来拆解一下smardaten如何支撑应用的搭建逻辑,以及smardaten作为企业级无代码与轻量级无代码的配置逻辑差异。课程视频......
  • 特别呈现|腾讯云 X K+ 峰会共同打造软件工程新生态
    近日,K+全球软件研发行业创新峰会在上海成功举办。会上,峰会钻石合作伙伴腾讯云倍受瞩目。其参会展台人潮涌动,演讲内容也深受关注和好评。腾讯云是腾讯集团倾力打造的云计算品牌。作为腾讯云的重要产品线之一,腾讯云CODING涵盖一站式研发管理平台及云原生工具,为互联网、金融、政......
  • 上门服务小程序|家政上门服务系统|东郊到家软件功能
    上门服务小程序是一种以移动互联网为基础的新型服务模式,它不仅方便用户使用,同时也可以提升服务的效率和质量。使用上门服务小程序实现按摩或理疗服务,同时操作简单,只需要一键预约即可在工作之余,休息娱乐的时候,点一个理按疗摩技师,做一个SPA,缓解工作压力,下面小编就详细讲解下家政上门......
  • Debian配置软件源
    一、备份原有配置:cp/etc/apt/sources.list/etc/apt/sources.list.bak二、配置#阿里镜像源debhttps://mirrors.aliyun.com/debianbullseyemainnon-freecontribdebhttps://mirrors.aliyun.com/debianbullseye-updatesmainnon-freecontribdebhttps://mirrors.......
  • Mac音乐制作软件-Logic Pro
    LogicPro是苹果公司开发的专业音乐制作软件,为音乐制作人、作曲家和音频工程师提供全面而强大的工具和功能。→→↓↓载LogicPro 多轨录音和编辑:LogicPro支持无限多轨录音和编辑,可以同时处理多个音频和MIDI轨道。用户可以轻松地录制、编辑和排列各种乐器和声音。内置......