2017-08-14 45 views
0

所以任务很简单,但不适合我 - 绿色侏儒扩展开发noob。当然我用google搜索了这个,但没有找到可以帮助的东西。侏儒扩展:悬停时更改St.Icon图像?

extension.js:

https://pastebin.com/TqDVp8Yz - 因为 '你的文章大多代码'。

stylesheet.css中:

.poppy-button { 
    background-size: 20px; 
    width: 20px; 
    height: 20px; 
    background-image: url("Resources/poppy.svg"); 
} 

.poppy-button:active, 
.poppy-button:focus, 
.poppy-button:checked, 
.poppy-button:hover { 
    background-image: url("Resources/poppy-active.svg"); 
} 

回答

2

我会避免CSS和连接到 “enter-event” 和 “leave-event” 信号,因为所有StWidget元素也ClutterActors。

myIcon = new St.Icon({ icon_name: "normal-icon-name"; }); 

myIcon.connect("enter-event", (widget) => { 
    widget.icon_name = "hover-icon-name"; 
}); 

myIcon.connect("leave-event", (widget) => { 
    widget.icon_name = "normal-icon-name"; 
}); 

在另一方面,如果设置“track-hover”到真正的StIcon你的CSS可能会奏效。

业余爱好者小贴士:为您的问题添加“gjs”标签,为Gnome Shell扩展提供更多帮助。

+0

连接事件不工作出于某种原因,我尝试了很多次,并且 这一切都归结为'扩展没有激活'和'事件被忽略'。除了使用'track_hover',以及我不知道在'反应性'之前需要做什么之外,没有什么比做更多的事情了。还有什么'track_active'的东西? 如果你想现在看到我的代码(它几乎没有改变) - https://pastebin.com/m0adRq2w – DIES

+0

你的扩展似乎工作正常(从我可以告诉),但你没有定义'icon_name'对于'this.icon'在第74行。你应该添加一些像'icon_name:“gnome-applications”'这个定义的散列。 –

+0

此外,在开放终端中运行'journalctl/usr/bin/gnome-shell -f -o cat'会为您提供有用的输出并帮助您调试错误。 –