Не уверен, что это ошибка или просто очень раздражающая функция, но я не могу заставить изображение появляться ни на одной из моих кнопок в Glade Designer.
Нужно ли изменить какое-либо свойство, чтобы оно отображало изображение?
Шаги ниже должны работать (от вида Вашего вопроса, который можно запустить на шаге 5, но я включал всех их для будущих пользователей).
your_app/data/media
icon widget
в edit image
на правильной панели свойств кнопки инструментов для добавления виджета изображения к кнопкеfile name
в edit image
и обзор к Вашему изображениюfile name
с ../media/
таким образом, поляна видит его.Вы видите скринкаст этого процесса приблизительно с 33 минут вперед в создавании Вашего первого видео приложения, которое выпустил Jono Bacon.
Я полагаю, что это потому, что по умолчанию (не уверен, что это настройка для GNOME или GTK), изображения не отображаются в кнопках, поэтому я не уверен, что есть и способ обойти это.
Этот вопрос Stackoverflow намекает на стоковые изображения, не отображаемые в кнопках из-за этого, что, как я полагаю, относится и к пользовательским изображениям.
Вы можете попробовать обходной путь, упомянутый в этом вопросе, чтобы посмотреть, работает ли он для вас:
from gi.repository import Gtk
settings = Gtk.Settings.get_default()
settings.props.gtk_button_images = True
Я также заметил, что на изображения кнопок панели инструментов эта настройка не влияет и они всегда показывается . Просто обязательно добавьте ../media
к пути изображения в Glade, как Гарри Кэрнс упоминает в своем ответе.
Вы также можете попробовать сделать это с помощью Python, если у вас не работает glade:
image = Gtk.Image()
image.set_from_file("data/media/settings.png")
image.show()
button = self.builder.get_object("yourButton")
button.add(image)
Все правильно, что вы сделали на самом деле ... проблема в имени файла "fb.ico"! дайте полную ссылку там для вашего изображения. Когда вы запустите код, он покажет ваше изображение в вашем окне. Вы знаете, что: -)