簡體   English   中英

如何更改 gtk.MenuItem() 的背景顏色

[英]How to change the background color of a gtk.MenuItem()

對於用 Gtk 制作的彈出菜單,我想將第一個菜單項作為標題。 最好它的背景應該是白色的。 由於---根據文檔---不能更改gtk.Label的背景顏色,而必須更改其容器的背景,所以在我gtk.MenuItem應該修改gtk.MenuItem本身。

但是,我徒勞地嘗試了以下方法:

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

這適用於gtk.EventBox容器,但不適用於gtk.MenuItem 什么在上面不起作用,我該怎么做才能讓這個gtk.MenuItem背景gtk.MenuItem白色?

PS:我寧願不為此使用任何 .rc 文件。

這是一個示例,當鼠標懸停在“退出”菜單上時,它會將“退出”菜單置於白色。 希望能幫到你!

#!/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()

為此,我玩弄“風格”。

在弄亂它之后,我發現這可以改變主菜單上的文本:

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

但是如果你想讓整個菜單背景變白,你需要改變父菜單,而不是MenuItem,像這樣:

menu = gtk.Menu()
menu_item = gtk.MenuItem("File")
menu_item.set_sumenu(menu)
menu.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(65355,65355,65355))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM