실행중인 표시기 애플릿의 상태 아이콘을 변경하고 업데이트 할 수 있습니까?


8

그놈 패널의 CPU로드 애플릿을 모방하는 간단한 응용 프로그램 표시기를 만들려고합니다.

나는 현재 새로운 CPU로드 정보로 표시기의 상태 아이콘을 업데이트 (덮어 쓰기) 하고이 작업을 수행 할 때마다 상태 아이콘을 동일한 아이콘으로 다시 설정 하여이 작업을 수행합니다 (이것이 멍청하다는 것을 알고 있지만 그것이 아닌지 모르겠습니다) 현재 다른 방법으로 해결할 수 있습니다).

불행히도 이것은 작동하지 않으며 항상 "첫 번째"아이콘 상태가 표시됩니다.

아이콘의 내용은 업데이트하는 동안 표시기 아이콘은 업데이트되지 않습니다.

또한 상태 아이콘을 일시적으로 다른 것으로 먼저 설정하려고했습니다.

...
update_icon()
indicator.set_icon("indicator-messages")
indicator.set_icon("indicator-cpu-load")
...

그러나 그것은 작동하지 않았습니다.

어떤 아이디어?


최신 정보:

실제로 해킹을 사용하여 표시기가 아이콘을 다시 그리도록 할 수 있습니다 (Jorge Castro 및 Ted Gould 덕분에).

...
update_icon()
indicator.set_status(appindicator.STATUS_ATTENTION)
indicator.set_status(appindicator.STATUS_ACTIVE)
...

주의 상태 아이콘은 활성 상태 아이콘과 같아야합니다. 그렇지 않으면 깜박임이 있습니다.

답변:


4

이것은 실제로 응용 프로그램 표시기의 의도 된 동작이 아닙니다. 하나 또는 두 개의 아이콘이 있어야하며 위젯에 거의 넣을 수있는 것이 아닙니다.

변경된 아이콘을 업데이트해야하기 때문에 아이콘 캐싱에 문제가있는 것 같습니다.

어쨌든 ' libindicator ' 와 같은 것을 사용하여 자신만의 맞춤형 지표를 만들고 싶을 것입니다 . 패널의 응용 프로그램 표시기 모음은 하나의 표시기로 그려집니다. 커스텀 인디케이터를 작성할 때 제한된 API의 애플리케이션 인디케이터를 사용할 때보 다 더 많은 기능을 사용할 수 있습니다.

또한 'libindicator-tools'패키지를 확인하십시오. 여기에는 지표 테스트를위한 편리한 유틸리티가 포함되어 있습니다.


원하는 것을 수행하는 것이 가능 하지만 (질문의 업데이트 참조) 사용자 지정 표시기를 작성하는 것이 더 좋습니다.
htorque

그럼에도 불구하고 GTkStatusIcon과 같이 확립되고 잘 작동하는 절차를 사용하는 것이 분명히 권장되지 않는 이유는 알 수 없습니다. 다시 한 번 말하면, 현재 모든 주요 데스크톱 관리자에서 GtkStatusIcon이 완전히 지원됩니다. 따라서 GtkStatusIcon은 향후 Ubuntu 릴리스에서 계속되어야하며 적어도 폴 백이 될 것입니다. GtKStatusIcon에 대해 하향 투표 한 사람은 왜 다른 생각을하는지 설명 할 수 있습니다. GtkStatusIcon에 의존하는 프로그램을 작성하지 않는 이유가 있습니까?
Takkat

Unity를 기본 셸로 사용하는 다음 버전의 Ubuntu는 Java 및 Wine 특수 사례를 제외하고 GtkStatusIcons를 지원하지 않습니다. 이것은 새로운 기술을 사용하여 데스크탑이 앞으로 나아갈 수 있도록하고 알림 영역의 혼란을 줄입니다.
Sense Hofstede

이것을 지적 해 주셔서 감사합니다. 이것은 실제로 사용자 정의 가능한 아이콘이 필요하거나 레거시 NA에 의존하는 모든 응용 프로그램이 개발자가 이식하지 않으면 향후 Ubuntu 버전에서 실행되지 않는다는 것을 의미합니까?
Takkat

그들은 Ubuntu에서 실행되지만 GtkStatusIcon은 표시되지 않습니다.
Sense Hofstede

1

나는 이것이 가능하지 않다고 생각하고 버그 보고서 에서 의도적으로 설계된 것처럼 보입니다 .

우리가 대신 권장하고 싶은 것은 사람들이 아이콘 테마처럼 생각하기 시작하는 것입니다. 그 이유는 여러 크기와 패널 테마를 응용 프로그램과 별도로 허용하기 때문입니다. 예를 들어, 응용 프로그램은 밝은 배경 (따라서 어두운 아이콘이 필요함)으로 테마가 될 수 있고 패널은 어두운 배경 (바늘 표시가있는 아이콘)이있을 수 있습니다. 응용 프로그램은 이에 대해 알 필요가 없습니다. 아이콘 이름을 사용하면이 문제를 패널 측면에서 해결할 수 있습니다.

Natty주기의 경우 아이콘을 생성하려는 사용자를위한 사용자 정의 아이콘 테마를 빌드 할 수있는 편리한 API도 제공하려고합니다. 모든 테마 문제를 해결하는 것은 아니지만 여러 크기의 문제를 해결할 수 있습니다.

업데이트 : 귀하의 의견 테드가 버그라고 생각하고 당신이 버그 파일을 것이 좋습니다 대답하기 위해 표시 - 응용 프로그램 의 라인을 따라 뭔가 "테마 업데이트가 지표에 의해 실현되지 않는다"


나는 내가하는 일이 디자인에 위배된다는 것을 확신하지만, (주제 내에서) 아이콘을 편집 / 변경할 수없는 이유에 대한 답변이 주석에 응답하지 않고 표시기가 내용을 업데이트하도록 강요합니다. indicator.set_icon ( "a") indicator.set_icon ( "b") indicator.set_icon ( "c") ...와 같은 것을 할 수 있지만 무한 새로운 아이콘을위한 무한 공간이 없습니다. : P
htorque
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.