我尝试使用一个自定义SVG作为我的GNOME shell扩展作为顶部面板中的状态图标。但是没有显示自定义图标,只显示小部件的标签文本。我在日志输出中没有发现错误。
当我试图设置一个内置图标,如“系统搜索-符号”,它的工作,这个图标显示。
这是我的代码片段( SVG位于扩展名:/home/myusername/.local/share/gnome-shell/extensions/my-widget@my-widgets/icons/timeclock-16x16.svg
的“图标”目录中):
// ...
let widgetBoxLayout = new St.BoxLayout();
let iconPath = `${Me.path}/icons/timeclock-16x16.svg`;
// just for debug if path is correct
log(`${Me.metadata.name}: Icon path=${iconPath}`);
let gicon = Gio.icon_new_for_string(`${iconPath}`);
let icon = new St.Icon({ gicon: gicon, style_class: 'system-status-icon', icon_size: 16 });
// this works for build-in icon:
//let icon = new St.Icon({ icon_name: 'system-search-symbolic', style_class: 'system-status-icon'});
widgetBoxLayout.add(icon);
widgetBoxLayout.add(this.widgetText);
//...
可能是图标路径中存在"@“字符的问题吗?但是为什么没有记录错误呢?
使用状态面板自定义图标的正确代码是什么?
(我有GNOME Shell 3.30.2)
发布于 2020-04-19 19:32:04
哦不!这其中的一个“一个人打了几个星期,终于问了群众,突然知道自己解决了”的情况.
图标实际上是可见的,但由于我使用的是一个黑暗的主题和图标本身也是黑暗的,它不是“可见的”。我倒置了这个图标的颜色,现在我可以在顶部面板中看到文本旁边的图标。
现在我必须找出使用哪个图标取决于用户的主题,但原来的问题已经解决了。
也许这个答案可以帮助其他开发人员犯同样愚蠢的错误。
发布于 2020-05-13 10:11:24
您需要使用-symbolic
图标来允许自动主题识别图标的重新着色。只需将图标的文件名更改为timeclock-symbolic.svg
,如果其他方面都可以的话,至少这应该是您的第一步。
https://stackoverflow.com/questions/61243243
复制相似问题