使用QSystemTrayIcon在OS X上创建单色托盘图标

8

OS X要求应用程序使用19x19px的单色PDF作为托盘图标,以适应基于用户主题的系统默认颜色。

使用模板图像表示菜单栏额外的功能。在“一般”系统偏好设置中,用户可以将菜单栏(和Dock)更改为黑色外��。[...]

使用QSystemTrayIcon能够实现这个功能吗?

据我所见,底层的QIcon类不支持PDF。


目前我正在使用黑色SVG,这导致显示出非常不自然的外观。

默认主题:

SVG on default theme

黑暗主题:

SVG on dark theme


如果有一种方法可以获取系统主题颜色,那么您可以为您的图标着色。只需将形状设置为alpha,并使用所需的值填充颜色通道即可。 - dtech
2个回答

2

这是QT已知的问题,将在5.6版本中修复。


这并没有增加任何价值。从我的原始问题来看,据我所知,底层的QIcon类不支持PDF格式 - Simon Warta
你尝试过在QIcon中使用PDF以外的其他格式吗?因为我注意到在苹果文档中,PDF并不是必须的要求来显示状态菜单中的图标。 - toohtik
日本,但图像格式不是单色的,并且不随系统主题更改(请参见深色主题中的黑色图标)。 - Simon Warta
1
在Cocoa中,使用NSImage对象的setTemplate:方法来实现这一点。也许QIcon有类似的属性?setTemplate:的文档说明可以使用黑色和透明来实现夜间模式(https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSImage_Class/#//apple_ref/occ/instm/NSImage/setTemplate:)。 - toohtik
太好了,谢谢。你能把这个放在另一个答案里吗? - Simon Warta

2
这个问题已经在Qt 5.6中得到了解决。只需要像这样在QIcon上设置isMask属性:myQIcon.setIsMask(true),然后调用mySysTray.setIcon(myQIcon)即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接