저는 gjs를 사용하여 GNOME Shell 확장을 개발 중입니다. 현재 panelMenu.Button 아이콘이 다음과 같이 설정되어 있습니다.
class MenuButton extends PanelMenu.Button {
...
...
setIcon() {
const icon_class = ICON_CLASS[this._settings.get_enum("icon")];
this.icon = new St.Icon({
style_class: icon_class,
});
this.add_actor(this.icon);
}
...
}
설정된 신호가 변경을 트리거하는 경우:
this._settingsC = this._settings.connect("changed", () => this.resetIcon());
ResetIcon()은 다음과 같습니다.
resetIcon() {
this.remove(this.icon)
const icon_class = ICON_CLASS[this._settings.get_enum("icon")];
this.icon = new St.Icon({
style_class: icon_class,
});
this.add_actor(this.icon);
}
그러나 런타임 시 아이콘을 변경/다시 렌더링하지 않습니다. 확장 프로그램을 다시 로드하면 변경 사항만 표시됩니다.
런타임에 아이콘을 변경하는 방법은 무엇입니까?