我在Visual Studio中使用Qt,我需要在应用程序中设置一个托盘图标。我使用下一个代码:
QSystemTrayIcon trayIcon = new QSystemTrayIcon(this);
QIcon trayImage(":/Res/myIcon.ico");
trayIcon->setIcon(trayImage);
trayIcon->setContextMenu(trayIconMenu);
trayIcon->show();
我的qrc文件:
<RCC>
<qresource prefix="/">
<file>Res/myIcon.ico</file>
</qresource>
</RCC>
它起作用了。但是当我将我的应用程序移动到另一台计算机时,它失败了,错误是"此应用程序无法启动,因为它无法找到或加载Qt平台插件'windows'"。我通过在带有执行文件的目录中创建目录"平台"并将qwindows.dll放入其中来解决这个问题。但在那之后,这个图标就消失了。我在托盘里只看到一块空白的方块。我可以使用托盘图标操作,但我的图像不显示。
在将Qt应用程序部署到其他机器时,还需要为所需的图像格式部署插件。在您的情况下,您必须创建imageformats
目录并复制qico.dll
插件(可以在Qt SDK目录中找到)。
尽管如此,我还是建议使用PNG格式的托盘图标,因为它具有更好的可移植性。
我读了QIcon
类的描述,在那里你可以找到链接到支持的格式QImageReader::supportedImageFormats()
,没有.ico
格式。
您应该使用qt中支持的图像格式之一。例如,如果您使用。png格式,它将显示。