Как изменить цвет фона gtk.MenuItem () - PullRequest
0 голосов
/ 26 августа 2011

Для всплывающего меню, созданного в Gtk, я хотел бы иметь первый пункт меню в качестве заголовка. Предпочтительно его фон должен быть белым. Поскольку --- в соответствии с документацией --- нельзя изменить цвет фона gtk.Label, а вместо этого должен изменить фон его контейнера, мне показалось, что сам gtk.MenuItem должен быть изменен.

Однако я напрасно попробовал следующее:

menu_item.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('#FFFFFF'))

Это будет работать для контейнера как gtk.EventBox, но для gtk.MenuItem это не так. Что не работает здесь выше, и что я могу сделать, чтобы этот gtk.MenuItem фон был белым?

PS: я бы не хотел использовать для этого какой-либо файл .rc.

1 Ответ

1 голос
/ 05 сентября 2011

Вот пример, который помещает меню «Выход» в белый цвет, когда мышь наводит курсор на него.Надеюсь, это поможет вам!

#!/usr/bin/python

import gtk

class PyApp(gtk.Window):

    def __init__(self):
        super(PyApp, self).__init__()

        self.set_title("Simple menu")
        self.set_size_request(250, 200)
        self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(6400, 6400, 6440))
        self.set_position(gtk.WIN_POS_CENTER)

        mb = gtk.MenuBar()

        filemenu = gtk.Menu()
        filem = gtk.MenuItem("File")
        filem.set_submenu(filemenu)

        exit = gtk.MenuItem("Exit")
        style = exit.get_style().copy ()
        style.bg[gtk.STATE_NORMAL] = exit.get_colormap().alloc_color (0xffff, 0x0000, 0x0000)
        exit.set_style (style)

        exit.connect("activate", gtk.main_quit)
        filemenu.append(exit)

        mb.append(filem)

        vbox = gtk.VBox(False, 2)
        vbox.pack_start(mb, False, False, 0)

        self.add(vbox)

        self.connect("destroy", gtk.main_quit)
        self.show_all()

PyApp()
gtk.main()

Для этого я играю с «стилем».

...