Qt 怎样设置应用程序图标以及release版本的主意事项

Qt 怎样设置应用程序图标以及release版本的主意事项,第1张

Qt 怎样设置应用程序图标以及release版本的主意事项

第一步,准备个ICO图标。

例如:myAppico 用任何的文本编辑器新建个文件 里面写上一行:

IDI_ICON1 ICON DISCARDABLE "myAppico"

第二步,保存改名为 myApprc并把它和你的图标myAppico一起放置到你的Qt工程的目录里面。 第三步,用文本编辑器打开你的Qt工程文件(如 myApppro ),在里面的最后面新添一行: RC_FILE = myApprc

第四步,在程序中添加如下代码: //app是程序中唯一的QApplication对象 appsetWindowIcon(QIcon("myAppico"));

注意:如果你的myApprc和你的图标myAppico不是在你的Qt工程目录里面,那么最后一句的代码中请指明图标文件的路径

// 三个步骤

1、首先,准备一个图标,例如:zxico,并新建一个文本文档,在里面添加一行:

IDI_ICON1   ICON DISCARDABLE"zxico"

2、重命名为:zxrc并保存,和你的程序图标zxico一起放到QT工程目录下;

3 、在QT工程文件pro里面最后新添加一行:

RC_FILE = zxrc

其实,在Qt助手(assistantexe)搜索关键字"Setting the Application Icon"就可以看到在各种平台设置Qt程序图标的方法,有兴趣的可以去看看,挺简单的

你说mac的APP还是windows下的exe?

windows下,我一般是直接用记事本,然后把文件名后缀改成aarc,

记事本的内容:

/////////////////////////////////

#include "winresh"

#include "versioninfoh"

// 图标

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

//////////////////////

#include "versioninfoh"然后这个声明一个这个头文件,头文件里面主要定义了

#define COMPANY_NAME "aaaaaaa"这些宏。

然后在你的工程pro里面:

RC_FILE = aarc

我用的是Qt Creator,修改的方法是:

首先准备个ICO图标。例如:Aico,网上有很多图标文件。

用记事本新建个txt

里面就写一行:

IDI_ICON1 ICON DISCARDABLE "Aico"

保存,修改后缀为rc,例如: myapprc

把它和图标Aico一起复制到你的QT工程项目的目录。

打开你的QT工程文件pro(例如 "myapppro" ),

在里面最后新添一行

RC_FILE = myapprc

保存,重新编译你的工程。

如果想换图标,就重换一个图标,重命名为Aico替换原来的,重新编译就可以了。

现在用到的挺多的软件基本都需要实现到这些个的功能。

1对于无边框透明的窗口,其实两个设置两句话就搞定了

setAttribute(Qt::WA_TranslucentBackground);

setWindowFlags(Qt::FramelessWindowHint);

然后就是这样之后无法响应鼠标的拖动,所以你要重载时间处理函数来实现鼠标的按下然后拖动的时间,其实就是根据鼠标的移动事件,判断如果按键是按下的状态,那么久move整个控件这样子。当然你觉得如果好多个窗口都要实现这个功能或者说你觉的写在程序的窗口类里面去重载这些个函数不太好。那么你可以自己建一个QOBJECT,然后利用这个object来处理窗口的事件。例如你的win窗口,需要实现这个功能,那么你就调用

win->installEventFilter(this);this指的是你自己新建的用来处理拖动的时间的qobject类,然后多个win你都可以注册到这个obj上,之后你注册过的窗口的事件都会经过这个obj,你就可以在这里:eventFilter(QObject obj, QEvent event) 拿到鼠标的移动的信息,还可以判断拿到的对象,然后去实现想要的功能。其实用到的就是installEventFilter这个函数的事件注册的效果而已,然后有一点比较重要的就是:installEventFilter注册过的窗口,事件触发时候的优先级是越后注册的优先级越高,所以在后来注册的类里如果你在eventFilter里做完处理return了一个true,那消息就不会继续走,后面(先前注册的类)就拿不到这个消息。这个是要注意一下的,根据需求也能调整一下注册的顺序。对应的卸载就是removeEventFilter函数。

2然后说一下托盘的事情

托盘其实利用的是QSystemTrayIcon这个类来实现。

新建一个mytxt文件,打开后在其中加一句 “IDI_ICON1 ICON DISCARDABLE "应用程序图标ico"”。(“应用程序图标ico”是要添加的名,格式一定要是ico),然后保存并退出,将文件格式改为qtdemorc,将和修改格式后的文件一起放入项目。

创建完文件后会自动打开该资源文件,这里需要先在下面添加前缀,就是点击添加按钮,然后选择前缀,默认的前缀是“/new/prefix1”,这个可以随意修改(不要出现中文字符)。然后再按下添加按钮来添加文件,这里最好将所有要用到的放到项目目录中。比如我们这里在项目目录中新建了一个images文件夹,然后将需要的图标文件粘贴进去。

以上就是关于Qt 怎样设置应用程序图标以及release版本的主意事项全部的内容,包括:Qt 怎样设置应用程序图标以及release版本的主意事项、Qt编译出来的程序怎么加上图标、怎样设置Qt生成的应用程序图标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9716807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存