set_label_settings() is a method (hence 'Callable'), but you're trying to use it like a property which generated an error.
Try:

get_label_settings().font_color = Color.RED

Note that the label must actually have a LabelSettings resource assigned in order for this to work.

Take a look at the theme editor, Godot has built in support for styling buttons differently depending on state, you might be able to do what you want without writing any code at all.

    soundgnome Perhaps I'm misinterpreting, but I don't see any sort of separator or margin style for icons.

    To reiterate, I want an invisible container next to the button. If the button is focused on, I want a texture to become visible next to the button.

      josh6798 To reiterate, I want an invisible container next to the button. If the button is focused on, I want a texture to become visible next to the button.

      Add the thing you want to the tree (a simple node like a label or a complete instantiated scene), disable visibility by default (the little eye icon).
      In your code, handle the proper events, focus/mouse_entered and *exited most likely. In handler functions, use show/hide function of the node according to what you want (focus_entered_ handler => node.show(), focus_exited handler => node.hide() )

      Be careful to have an empty space, and/or set sizing/anchors, in place of hidden stuff or if you use container, it will extend when thing is visible and shrink back when hidden again.

        8 days later

        JusTiCe8 I don't understand what you're saying. Can you make a quick visual reference?

        6 days later

        Are you having trouble changing font color or toggle the icon visible?
        If you comment out the text setting lines would toggle icon work as you intended?

        I'm having trouble making the icon visible.

        if you move the icon node out of Button node would it work? eg. in 2D view move the TextureRect to be child of PanelContainer then:
        @onready var icon = get_node("PanelContainer/TextureRect")