, , , GTK OP-. ( ) .
, , , background, Entry . , , "" .
, , GTK, , , GtkInspector , . background-image background-color .
background-image , , . , color -, background-image, , , GTK , : linear-gradient(red). , .
:
if "red" in self.name_entry.get_text():
self.gtk_provider.load_from_data('#name_entry { background-image: linear-gradient(red); }')
elif "green" in self.name_entry.get_text():
self.gtk_provider.load_from_data('#name_entry { background-image: linear-gradient(green); }')
- , ,
self.entry_default_background_color_str CSS.
, : . , CssProvider css, , , , , .
:
if "red" in self.name_entry.get_text():
self.gtk_provider.load_from_data('#name_entry { background-image: linear-gradient(red); }')
elif "green" in self.name_entry.get_text():
self.gtk_provider.load_from_data('#name_entry { background-image: linear-gradient(green); }')
else:
self.gtk_provider.load_from_data('#name_entry {}')
?
, , . , , - CSS , , . CSS , , .
, , .
def __init__(self):
screen = Gdk.Screen.get_default()
gtk_provider = Gtk.CssProvider()
gtk_context = Gtk.StyleContext()
gtk_context.add_provider_for_screen(screen, gtk_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
Gtk.Window.__init__(self, title="Check Input")
self.set_size_request(300, 80)
self.mainbox = Gtk.VBox()
self.add(self.mainbox)
gtk_provider.load_from_data("""
#name_entry.red { background-image: linear-gradient(red); }
#name_entry.green { background-image: linear-gradient(green); }
""")
name_entry = Gtk.Entry()
name_entry.set_name("name_entry")
self.mainbox.pack_start(name_entry, True, True, 0)
name_entry.connect("changed", self.check_input)
self.show_all()
def check_input(self, entry):
entry_style_context = entry.get_style_context()
if "red" in entry.get_text():
entry_style_context.add_class("red")
elif "green" in entry.get_text():
entry_style_context.add_class("green")
else:
entry_style_context.remove_class("red")
entry_style_context.remove_class("green")