Я занимаюсь разработкой приложения PyGTK с помощью appindicator. Я создаю свой appindicator аналогично, как в этом примере. В этом примере используется значок акции «Индикатор-сообщения».
Итак, я могу:
Вопрос в том, если я использую стоковая иконка, как я могу определить, какие пиктограммы доступны (это совместимо во всех ОС, предоставляется ли оно GTK)? Будет ли это вести себя одинаково в разных дистрибутивах Linux?
Или, если я создаю пользовательский значок, как я могу определить, какая тема активна (полагаю, мне нужна версия с темным и светлым значком) и отобразить соответствующий значок? Что с другими темами, похоже, что их сложно поддерживать?
На http://unity.ubuntu.com/projects/appindicators/ написано «Значки на панели Themable - Вы можете установить определенный значок в качестве значка панели для индикатора: это должно упростить создание одноцветных значков панели для светлых и темных тем. " но это не говорит о том, как этого добиться?
Я обнаружил Погодный индикатор делает это, но я думаю, с помощью стандартных значков.
Для части Stock ICons я нашел это из центра разработки gnome,
элемент stock имеет структуру типа GtkStockItem.
struct GtkStockItem {
gchar *stock_id;
gchar *label;
GdkModifierType modifier;
guint keyval;
gchar *translation_domain;
};
здесь у каждой позиции есть идентификатор акции, этот же идентификатор акции отображается на значок из GtkIconFactory, см. Это в документации gnome:
Каждый идентификатор акции может быть связан с GtkStockItem, который содержит видимую пользователю метку, ускоритель клавиатуры и домен перевода элемента меню или панели инструментов; и / или с иконкой, хранящейся в GtkIconFactory
Связь между GtkStockItem и стоковыми иконками является чисто традиционной (благодаря использованию одного и того же идентификатора акции); можно зарегистрировать товар, но без значка, и наоборот. Иконки акций могут иметь вариант RTL, который используется для языков справа налево.
blockquote>Для получения дополнительной информации вы можете сослаться на этот
Извините, что опубликовал его как 2-й ответ, а не как комментарий, я не смог набрать такой длинный текст в комментариях.
Что касается вашей части вопроса:
, если я создаю пользовательский значок, как я могу определить, какая тема активна (полагаю, мне нужна версия с темным и светлым значком) и отобразить соответствующий значок ? Что с другими темами, похоже, что их сложно поддерживать?
вы можете использовать свойство «gtk-theme-name», определенное в классе GtkSettings, чтобы получить имя темы, которая в данный момент используется. активен.
Для получения дополнительной информации для GtkSettings проверьте этот