Qt的applicationName的使用TARGET作为默认值会截断

Qt 中 TARGET 名称包含点号的问题分析

在 Qt 项目中,TARGET 名称中包含点号(.)可能会导致应用名称被截断。这是由于 Qt 内部处理机制对点号有特殊处理,通常会将点号后的内容忽略或视为文件扩展名。

解决方法

方法一:使用连字符替代点号

TARGET 中的点号替换为连字符(-),例如:

qmake 复制代码
TARGET = VCDS-Server

这样可以确保 applicationName()applicationDisplayName() 正确显示完整名称。

方法二:显式设置应用名称

在代码中直接设置应用名称,覆盖 TARGET 的默认行为:

cpp 复制代码
QCoreApplication::setApplicationName("VCDS.Server");
QCoreApplication::setApplicationDisplayName("VCDS.Server");

这种方式可以完全控制名称显示,不受 TARGET 格式限制。

方法三:修改 pro 文件补充设置

在 pro 文件中添加以下配置,显式定义应用名称:

qmake 复制代码
TARGET = VCDS.Server
QMAKE_TARGET_PRODUCT = VCDS.Server
DEFINES += QT_APP_NAME=\\\"VCDS.Server\\\"

这种方法通过定义宏和变量,强制传递完整名称到编译结果中。

问题根源

Qt 在解析 TARGET 名称时,可能将点号视为分隔符,导致后续内容被忽略。这种设计可能是为了兼容文件系统命名习惯或历史遗留原因。连字符(-)和下划线(_)是更安全的替代符号。

相关推荐
疋瓞16 小时前
C++_win_QT6学习《3》_结合qt项目开发学习git仓库相关知识
c++·qt·学习
锡兰_CC18 小时前
无缝触达,卓越体验:开启openEuler世界的任意门
服务器·网络·数据库·c++·图像处理·qt·nginx
Source.Liu19 小时前
【LibreCAD】RS_Pen 类详解
qt·cad
油炸自行车20 小时前
【Qt】Qt Creator Debug模式提示“缺少 Windows CDB 调试器配套的扩展组件“”
开发语言·windows·qt
我要升天!21 小时前
QT -- 网络编程
c语言·开发语言·网络·c++·qt
墨月白21 小时前
[QT]QList 相关接口
qt
GIS阵地21 小时前
Qt实现简易仪表盘
开发语言·c++·qt·pyqt·qgis·qt5·地理信息系统
电子_咸鱼1 天前
【QT SDK 下载安装步骤详解 + QT Creator 导航栏使用教程】
服务器·开发语言·网络·windows·vscode·qt·visual studio code
CC.GG1 天前
【Qt】Qt初识
开发语言·qt