How do I get images to appear on buttons in Glade Designer?
Solution 1
I believe this is because by default (not sure if it's a GNOME-wide or GTK setting), no images are shown in buttons, so I'm not sure there is a way around it, either.
This Stackoverflow question hints at stock images not shown in buttons because of that, which I assume it applies to custom images too.
You might try the workaround mentioned in that question to see if it works for you:
from gi.repository import Gtk
settings = Gtk.Settings.get_default()
settings.props.gtk_button_images = True
What I have also noticed is that toolbar button images are not affected by this setting and are always shown. Simply make sure to prepend ../media
to the image path in Glade, as Garry Cairns is mentioning in his answer.
Solution 2
The steps below should work (from the look of your question you can start at step 5 but I've included all of them for future users).
- Make sure the icon image you want to use is in
your_app/data/media
- select the widget you want to apply the image to in glade
- choose
icon widget
inedit image
on the right tool button properties panel to add an image widget to your button - edit the image widget you just created to add an image using the right panel (select
file name
inedit image
and browse to your image - prefix the file name that appears in
file name
with../media/
so glade can see it.
You can see a screencast of this process from about 33 minutes onwards in the create your first app video Jono Bacon released.
Related videos on Youtube
RobinJ
Updated on September 18, 2022Comments
-
RobinJ over 1 year
Not sure if this is a bug or just a very annoying feature, but I can't get an image to appear on any of my buttons in Glade Designer.
Is there some property I need to change in order to force it to display the image?
-
RobinJ almost 12 yearsYou just described what I did in the first place.
-
Garry Cairns almost 12 yearsYour screenshot doesn't show a relative path in the filename (says
fb.ico
instead of../media/fb.ico
) as per step 5. Is the screenshot accurate? -
RobinJ almost 12 yearsI've tried both.
-
Garry Cairns almost 12 yearsSorry for long delay. This is interesting. If you try to use a stock icon do they show up or are they missing too? If they're missing then the problem is almost certainly the way you're trying to apply it rather than any settings problem. At a guess I'd say it might happen if you try to add the button directly rather than by right-clicking on the menubar and adding it in the hierarchy - when I tried to do it that way in testing this for you I couldn't get any icons either. Give that a try and let me know how it goes.
-
RobinJ almost 12 yearsStock icons do not work either. They only show up when using a toolbar with buttons in it.
-
Garry Cairns almost 12 yearsDid you give the other part I mentioned a try - i.e. adding the buttons in the container widget's hierarchy rather than adding them manually? If that doesn't solve your problem I'm afraid my usefulness has come to an end as adding buttons directly, rather than through the hierarchy, was the only way I could replicate the behaviour you're seeing. Sorry.
-
Sardathrion - against SE abuse over 11 yearsThis raised the following exception:
ImportError: could not import gobject (error was: ImportError('When using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject".',))