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

相关推荐
Python图像识别2 小时前
46-【2027毕设】YOLO11田间杂草检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
沫璃染墨14 小时前
《Qt从零入门系列(十三):QSS样式表详解——从选择器与层叠规则到控件美化实战》
开发语言·css·c++·qt·ui·qt6.3·qss
好好学习O(∩_∩)O18 小时前
[QT] 多线程moveToThread 和易踩的8个坑
开发语言·qt
北i20 小时前
Dubbo 默认超时重试:把下游打雪崩的隐形放大器
开发语言·qt·dubbo
扶尔魔ocy1 天前
【qt openGL入门笔记】OSG实现显示飞机模型飞行的点迹(二)
qt·opengl·osg
Python图像识别1 天前
43-【2027毕设】YOLO11暴力检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
bug和崩溃我都要1 天前
QT 开发的专业截图录屏工具 - macOS版 / Windows版
windows·qt·mac·录屏·截屏
Python图像识别2 天前
40-【2027毕设】YOLO11面部口罩检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
Python图像识别2 天前
39-【2027毕设】YOLO11行人摔倒检测系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
Quz2 天前
QML PathView:直线路径与曲线路径
qt·动画·qml