изменение цвета шрифта gtkbutton - PullRequest
1 голос
/ 18 сентября 2010

Я пытаюсь изменить цвет текста, отображаемого на GtkButton с помощью gtk_widget_modify_fg (), но он не работает. Я успешно изменил фон GtkButton с помощью gtk_widget_modify_bg (), но передний план не работает.

Пожалуйста, помогите.

С уважением -Дургеш О Мишра

Ответы [ 3 ]

1 голос
/ 10 сентября 2011

вы можете получить дочерний виджет GtkLabel для вашей кнопки, используя gtk_bin_get_child, тогда вы сможете изменить цвет переднего плана с помощью gtk_widget_modify_fg, как вы изначально планировали.

Пример (python) можно найти здесь: Какустановить цвет текста Gtk2 :: Button

0 голосов
/ 01 мая 2017

У меня тоже была эта проблема.Я использую Mono Gtk #.Оказывается, каждый раз, когда вы изменяете текст кнопки, он создает новый дочерний виджет Label для отображения текста.Вы должны менять цвет переднего плана для дочернего виджета при каждом изменении текста.

    private void ChangeButtonTextAndColor (Button button, string text)
    {
        // Get forground color of the button widget to use for the label text color
        var fore = button.Style.Foreground (StateType.Normal);

        // Change the text - it will create a new label widget
        // Note:  Child will be NULL until some text is set
        button.Label = text;

        // Change the text color for the new label
        // One color for all the different states
        button.Child.ModifyFg (StateType.Insensitive, fore);
        button.Child.ModifyFg (StateType.Active, fore);
        button.Child.ModifyFg (StateType.Normal, fore);
        button.Child.ModifyFg (StateType.Prelight, fore);
        button.Child.ModifyFg (StateType.Selected, fore);
    }
0 голосов
/ 18 сентября 2010

Вы можете поместить виджет GtkLabel внутри кнопки и раскрасить его. Помните, что пользователям нравятся программы, которые соответствуют системной теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...