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


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.