런타임에 PanelMenu.Button 아이콘을 재설정하는 방법은 무엇입니까?

런타임에 PanelMenu.Button 아이콘을 재설정하는 방법은 무엇입니까?

저는 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);
  }

그러나 런타임 시 아이콘을 변경/다시 렌더링하지 않습니다. 확장 프로그램을 다시 로드하면 변경 사항만 표시됩니다.

런타임에 아이콘을 변경하는 방법은 무엇입니까?

관련 정보