• 866阅读
  • 17回复

[讨论]Qt在任务栏上单击右键如何显示应用的名字 [复制链接]

上一主题 下一主题
离线lwei24
 

只看楼主 倒序阅读 楼主  发表于: 2023-10-31
Qt开发出来的应用程序,在任务栏的时候,单击右键,会有一个向上的菜单,菜单第一个选项默认是当前应用程序的名字,第二个选项默认是将此程序锁定到任务栏,第三个选项是关闭窗口,目前第一个选项是显示的是软件的英文名字,但想改成中文名字,不知道各位大佬们有办法实现吗?我尝试添加过.pro中的[size=; font-size: inherit,inherit]QMAKE_TARGET_DESCRIPTION = 某某软件 VERSION = 1.0.0,但发现并没有效果,甚至修改过.rc文件,也不见有任何效果。各位大佬,你们有办法处理这个问题吗?欢迎大佬们指点一二,小弟感激不尽!!!
离线uidab

只看该作者 1楼 发表于: 2023-10-31
pro文件中加这个试试
TARGET = aaaa
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线snolkmg

只看该作者 2楼 发表于: 2023-10-31
设置rc文件就可以,有时候任务栏右键一直显示英文名是qtcreator的问题,你可以把release后的exe文件单独拿出来打个包看看
离线lwei24

只看该作者 3楼 发表于: 2023-10-31
回 uidab 的帖子
uidab:pro文件中加这个试试
TARGET = aaaa (2023-10-31 12:36) 

这个试过了,只能英文,不能写中文,中文的话就无法编译通过。像钉钉,看安装包里有用到Qt5Core.dll,钉钉在任务管理器那里操作单击可以看到默认第一行选项显示当前软件的名字:钉钉。所以很好奇,它是怎么做到第一行默认中文显示的?
离线lwei24

只看该作者 4楼 发表于: 2023-10-31
回 snolkmg 的帖子
snolkmg:设置rc文件就可以,有时候任务栏右键一直显示英文名是qtcreator的问题,你可以把release后的exe文件单独拿出来打个包看看 (2023-10-31 13:41) 

有人也说设置rc的FileDescription值,我设置问中文,结果还是显示英文,没有变化。我用vs2017编译Qt项目的。至于你说的把release的exe打包,这个我试试看
离线nigoole

只看该作者 5楼 发表于: 2023-10-31
[attachment=23476]
有句话说得好:好好学习,天天向上。加油~~!有上船的朋友联系企鹅393320854
离线lwei24

只看该作者 6楼 发表于: 2023-10-31
回 nigoole 的帖子
nigoole:[图片]
[图片] (2023-10-31 16:06) 

真奇怪,我也改了.rc文件的FileDescription值对应中文“某某客户端软件”,但用QtCreator运行多次,它还是英文名……
离线uidab

只看该作者 7楼 发表于: 2023-10-31
你用VS的编译器还是mingw?
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线lwei24

只看该作者 8楼 发表于: 2023-10-31
回 uidab 的帖子
uidab:你用VS的编译器还是mingw? (2023-10-31 16:43) 

Qt msvc2017
离线lwei24

只看该作者 9楼 发表于: 2023-10-31
回 uidab 的帖子
uidab:你用VS的编译器还是mingw? (2023-10-31 16:43) 

经验证,在mingw编译器下是可以通过修改.rc文件来实现,但是msvc就做不到,不知道您是否还有其他方法能做到在msvc编译器下使得编译后的Qt应用程序在任务栏单击右键时可以默认在第一行上显示软件的中文名呢?
离线uidab

只看该作者 10楼 发表于: 2023-10-31
回 lwei24 的帖子
lwei24:经验证,在mingw编译器下是可以通过修改.rc文件来实现,但是msvc就做不到,不知道您是否还有其他方法能做到在msvc编译器下使得编译后的Qt应用程序在任务栏单击右键时可以默认在第一行上显示软件的中文名呢? (2023-10-31 16:59) 

明天试试吧,刚编译试了,改成aaaaa为中文可以编译,不过出来是乱码  “但是.exe”,不知道和UTF8有没有关系。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线snolkmg

只看该作者 11楼 发表于: 2023-11-01
rc文件要用gbk编码,utf-8中文乱码
离线lwei24

只看该作者 12楼 发表于: 2023-11-01
回 uidab 的帖子
uidab:明天试试吧,刚编译试了,改成aaaaa为中文可以编译,不过出来是乱码  “但是.exe”,不知道和UTF8有没有关系。 (2023-10-31 22:42) 

若在.rc文件(在GB2312编码格式下)修改FileDescription对应的值,通过MinGW编译后,在任务管理器对应的该应用程序的图标上单击右键时第一行可以显示对应应用程序的中文名。如果是MSVC2017编译,不管在.rc文件在GB2312编码还是UTF8编码的格式下,编译后的应用程序在任务管理器的对应图标单击右键时第一行仍然显示对应应用程序的英文名。试了两三次,都是这样的结果……
离线lwei24

只看该作者 13楼 发表于: 2023-11-01
回 snolkmg 的帖子
snolkmg:rc文件要用gbk编码,utf-8中文乱码 (2023-11-01 09:19) 

如果是MinGW下编译,可能会是您说的这种情况,但是在MSVC2017下编译,好像不管什么格式都不管用,在任务栏上对应应用程序单击右键,还是应用的英文……
离线lixinwei

只看该作者 14楼 发表于: 2023-11-02
用cmake能解决这个问题,只要rc文件是gbk格式

我用Qt 5.15.2 msvc2019,最新版本的Qt Creator(较早版本的Qt Creator对CMake的支持不完善),创建一个默认的Qt Widgets项目,Build System 选 cmake 而不是 qmake,创建完之后,修改CMakeLists.txt, 然后把自己编写的rc文件复制到项目目录下,编译运行即可
  1. set(PROJECT_SOURCES
  2.     main.cpp
  3.     mainwindow.cpp
  4.     mainwindow.h
  5.     mainwindow.ui
  6. )
  7. # 在这里添加下面几行,把“test.rc”改成你自己的rc文件名
  8. if (WIN32)
  9.     list(APPEND PROJECT_SOURCES test.rc)
  10. endif()


另外,cmake 还支持输出文件为中文,在CMakeLists.txt中添加下面的代码可以编译出“测试.exe”,qmake 的 “TARGET =” 后面不允许为中文
  1. set_target_properties(my_app PROPERTIES OUTPUT_NAME "测试")
离线lwei24

只看该作者 15楼 发表于: 2023-11-03
回 lixinwei 的帖子
lixinwei:用cmake能解决这个问题,只要rc文件是gbk格式
我用Qt 5.15.2 msvc2019,最新版本的Qt Creator(较早版本的Qt Creator对CMake的支持不完善),创建一个默认的Qt Widgets项目,Build System 选 cmake 而不是 qmake,创建完之后,修改CMakeLists.txt, 然后把自己编写的rc文件复制 .. (2023-11-02 23:00) 

好的,谢谢您的答复,您给的办法是解答如何输出以中文命名的应用程序。不过,这个问题,我已经解决了,是通过VS2017+Qt插件,直接在VS2017上可以编译输出以中文命名的应用程序。而,目前的问题是应用程序输出后,运行后,在任务管理器上显示该程序的图标单击右键,在默认第一行如何显示它(应用程序)的中文名,如nigoole说截图一样。不知道Cmake是否能做到?
离线lixinwei

只看该作者 16楼 发表于: 2023-11-03
回 lwei24 的帖子
lwei24:好的,谢谢您的答复,您给的办法是解答如何输出以中文命名的应用程序。不过,这个问题,我已经解决了,是通过VS2017+Qt插件,直接在VS2017上可以编译输出以中文命名的应用程序。而,目前的问题是应用程序输出后,运行后,在任务管理器上显示该程序的图标单击右键,在默认第一行如 .. (2023-11-03 09:27) 

能做到,按我上一个帖子那样做,创建CMake项目,添加rc文件,修改CMakeLists.txt,只是因为浏览器原因,我不能上传图片。
上一个帖子的核心内容说的就是 CMake 可以解决你的问题,我只是顺便提了一下CMake 还支持创建以中文命名的应用程序
离线lwei24

只看该作者 17楼 发表于: 2023-11-06
回 lixinwei 的帖子
lixinwei:能做到,按我上一个帖子那样做,创建CMake项目,添加rc文件,修改CMakeLists.txt,只是因为浏览器原因,我不能上传图片。
上一个帖子的核心内容说的就是 CMake 可以解决你的问题,我只是顺便提了一下CMake 还支持创建以中文命名的应用程序 (2023-11-03 13:23) 

好的,多谢,目前对cmake还不是很熟,手写cmake没有编译通过,我再多试试看。
快速回复
限100 字节
 
上一个 下一个