Change background color of controls

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By patlol

Hello,
I would like to change the background color of some of the controls in my GUI (LineEdit, ItemList…).
For example on a LineEdit the background color is grey, I attach a script to this control:

extends LineEdit

var my_style = StyleBoxFlat.new()

func _ready():
	my_style.set_bg_color(Color(0,1,1,1))

But nothing changes and there is no error message. I didn’t find an example in the doc. Where is my mistake.
Thank you.

:bust_in_silhouette: Reply From: i_love_godot

You seem to be creating a new style, but not assigning it to any of the custom styles properties:

extends LineEdit

var my_style = StyleBoxFlat.new()

func _ready():
    my_style.set_bg_color(Color(0,1,1,1))

    # Set the "normal" style to be your newly created style.
    set("custom_styles/normal", my_style)

I’ve never actually used these so I can’t guarantee that the code above is the correct syntax, but I’m quite sure you need to be setting a property to the new style, otherwise it won’t be used. Hope this helps.

:bust_in_silhouette: Reply From: patlol

It works perfectly, this kind of thing is apparently difficult to find on the doc.

Thank you so much!

Please help other by accepting the answer if it solved your problem.
Also please don’t post "thank you"s as answers.
Welcome to godot tho :slight_smile:

sleepprogger | 2019-12-18 22:34

It can be very tricky, I found useful to create the same thing in the editor and look at the scene .godot file content, the names are the same

Jacopofar | 2020-06-24 16:08