How do I get images to appear on buttons in Glade Designer?

10,905

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).

  1. Make sure the icon image you want to use is in your_app/data/media
  2. select the widget you want to apply the image to in glade
  3. choose icon widget in edit image on the right tool button properties panel to add an image widget to your button
  4. edit the image widget you just created to add an image using the right panel (select file name in edit image and browse to your image
  5. 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.

Share:
10,905

Related videos on Youtube

RobinJ
Author by

RobinJ

Updated on September 18, 2022

Comments

  • RobinJ
    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.

    enter image description here enter image description here

    Is there some property I need to change in order to force it to display the image?

  • RobinJ
    RobinJ almost 12 years
    You just described what I did in the first place.
  • Garry Cairns
    Garry Cairns almost 12 years
    Your 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
    RobinJ almost 12 years
    I've tried both.
  • Garry Cairns
    Garry Cairns almost 12 years
    Sorry 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
    RobinJ almost 12 years
    Stock icons do not work either. They only show up when using a toolbar with buttons in it.
  • Garry Cairns
    Garry Cairns almost 12 years
    Did 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
    Sardathrion - against SE abuse over 11 years
    This 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".',))