GTK3 Python 更改单个按钮颜色

3 投票
2 回答
3314 浏览
提问于 2025-04-18 18:28

如何在Python中使用GTK3改变单个按钮的颜色?我有两个Gtk.Button按钮。我想把第二个按钮的颜色改成蓝色。

2 个回答

3

一般来说,人们不希望一个程序去覆盖他们的桌面主题。无论如何,我觉得在Gtk3+之前是有可能做到的,但我不太确定。也许可以通过使用css来实现。

这就是我能给你提供的最接近的答案。

from gi.repository import Gtk, Gdk

def button_clicked(button):
    print("Button has been clicked!")

window=Gtk.Window()

button=Gtk.Button(label="Button")
button.connect("clicked", button_clicked)

color = Gdk.color_parse('#234fdb')
button.modify_bg(Gtk.StateType.PRELIGHT, color)

window.add(button)

window.show_all()

Gtk.main()

或者

from gi.repository import Gtk, Gdk

def button_clicked(button):
    print("Button has been clicked!")

window=Gtk.Window()

button=Gtk.Button(label="Button")
button.connect("clicked", button_clicked)
window.add(button)
window.show_all()

colorh="#0000FF"        
color=Gdk.RGBA()
color.parse(colorh)
color.to_string()

button.override_background_color(Gtk.StateFlags.NORMAL, color)

Gtk.main()
0

这应该可以通过CSS来实现,试试这个链接,里面有一个很好的例子,讲述了如何将Python的GTK和CSS结合在一起使用。

http://wolfvollprecht.de/blog/gtk-python-and-css-are-an-awesome-combo/

撰写回答