Я пытаюсь сделать GUI в Python в первый раз, и я решил использовать gtk3 + через PyGObject.
Я работаю в Ubuntu 18.04 и привык к разработке всего, используя Anaconda.
Я просто следую учебному пособию по https://python-gtk-3-tutorial.readthedocs.io/en/latest/dialogs.html.
Проблема в том, что когда я пытаюсь вызвать FileChooserDialog
, используя ~/anaconda3/bin/python
, значки в моем диалоговом окне кажутся сломанными. Но когда я использую /usr/bin/python
, все работает как положено.
Вот изображение того, как диалог выглядит через anaconda
Я попытался посмотреть файл org.gtk.Settings.FileChooser.gschema.xml
но я ничего не вижу в иконках.
Извините, если этой информации недостаточно, я только начинаю с GUI и не нашел подобных вопросов, поэтому не уверен что я должен искать, чтобы это исправить. Я могу дополнить, если кто-то может указать мне правильное направление.
Спасибо!
EDIT1: Поэтому я попытался найти путь, который использует анаконда, по сравнению с путем, который система python использует и они кажутся одинаковыми? Я использовал Gtk.IconTheme().get_search_path()
.
EDIT2: Последнее, что я обнаружил, это то, что когда я звоню Gtk.IconTheme().get_default().has_icon()
для большинства имен значков, ожидаемых в ubuntu-mono-dark
, например, «папка» для Например, он возвращает True
.
Но когда я звоню Gtk.IconTheme().get_default().get_filename("folder", 64, 0)
Анаконда python возвращает AttributeError: 'NoneType' object has no attribute 'get_filename'
Так что IconTheme
похоже, что он проверяет правильность значков, но когда он приходит к получению реального файла, он не всегда находит их, но только при использовании Anaconda python.
Это верно для темы Adwaita, например. Anaconda python может возвращать файлы значков из всех подкаталогов в /usr/share/icons/Adwaita
, кроме масштабируемых подкаталогов.
Также, похоже, он не может вернуть файлы из темы Humanity, например. Даже если Gtk.IconTheme().get_default().has_icon()
возвращает True
для одного из значков там.