Как изменить фон GtkWidget в GTK3?

Я пытаюсь использовать override_background_color на некоторых виджетах GTK3, но они по-прежнему отображаются с цветом фона по умолчанию.

2
задан 29 June 2012 в 18:54

7 ответов

GTK + 1.2

  GtkRcStyle *rc_style;
  GdkColor color;

  color.red = 65535;
  color.green = 0;
  color.blue = 0;

  rc_style = gtk_rc_style_new();

  rc_style->bg[GTK_STATE_NORMAL] = color;

  rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_BG;

  gtk_widget_modify_style (widget, rc_style);

  gtk_rc_style_unref (rc_style);

GTK + 2.24

Использование библиотеки GDK :

GtkWidget *widget; //your widget

  GdkColor color; 

  gdk_color_parse ("red", &color); //setting a color - you can also use RGB

  gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color); //modifying the background color of the widget

Полная ссылка на GdkColor можно найти в GNOME'S Dev Documentation .

GTK 3.0

Для gtk + 3 вы можете использовать gtk_css_provider (). Полные руководства и примеры можно найти по адресу GTK + Форумы .

2
ответ дан 25 July 2018 в 18:16

GTK + 1.2

  GtkRcStyle *rc_style;
  GdkColor color;

  color.red = 65535;
  color.green = 0;
  color.blue = 0;

  rc_style = gtk_rc_style_new();

  rc_style->bg[GTK_STATE_NORMAL] = color;

  rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_BG;

  gtk_widget_modify_style (widget, rc_style);

  gtk_rc_style_unref (rc_style);

GTK + 2.24

Использование библиотеки GDK :

GtkWidget *widget; //your widget

  GdkColor color; 

  gdk_color_parse ("red", &color); //setting a color - you can also use RGB

  gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color); //modifying the background color of the widget

Полная справка о GdkColor можно найти в GNOME'S Dev Documentation .

GTK 3.0

Для gtk + 3 вы можете использовать gtk_css_provider (). Полные руководства и примеры можно найти по адресу GTK + Форумы .

2
ответ дан 2 August 2018 в 00:29

GTK + 1.2

  GtkRcStyle *rc_style;
  GdkColor color;

  color.red = 65535;
  color.green = 0;
  color.blue = 0;

  rc_style = gtk_rc_style_new();

  rc_style->bg[GTK_STATE_NORMAL] = color;

  rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_BG;

  gtk_widget_modify_style (widget, rc_style);

  gtk_rc_style_unref (rc_style);

GTK + 2.24

Использование библиотеки GDK :

GtkWidget *widget; //your widget

  GdkColor color; 

  gdk_color_parse ("red", &color); //setting a color - you can also use RGB

  gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color); //modifying the background color of the widget

Полная справка о GdkColor можно найти в GNOME'S Dev Documentation .

GTK 3.0

Для gtk + 3 вы можете использовать gtk_css_provider (). Полные руководства и примеры можно найти по адресу GTK + Форумы .

2
ответ дан 4 August 2018 в 15:58

GTK + 1.2

  GtkRcStyle *rc_style;
  GdkColor color;

  color.red = 65535;
  color.green = 0;
  color.blue = 0;

  rc_style = gtk_rc_style_new();

  rc_style->bg[GTK_STATE_NORMAL] = color;

  rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_BG;

  gtk_widget_modify_style (widget, rc_style);

  gtk_rc_style_unref (rc_style);

GTK + 2.24

Использование библиотеки GDK :

GtkWidget *widget; //your widget

  GdkColor color; 

  gdk_color_parse ("red", &color); //setting a color - you can also use RGB

  gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color); //modifying the background color of the widget

Полная ссылка на GdkColor можно найти в GNOME'S Dev Documentation .

GTK 3.0

Для gtk + 3 вы можете использовать gtk_css_provider (). Полные руководства и примеры можно найти по адресу GTK + Форумы .

2
ответ дан 6 August 2018 в 00:36

GTK + 1.2

  GtkRcStyle *rc_style;
  GdkColor color;

  color.red = 65535;
  color.green = 0;
  color.blue = 0;

  rc_style = gtk_rc_style_new();

  rc_style->bg[GTK_STATE_NORMAL] = color;

  rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_BG;

  gtk_widget_modify_style (widget, rc_style);

  gtk_rc_style_unref (rc_style);

GTK + 2.24

Использование библиотеки GDK :

GtkWidget *widget; //your widget

  GdkColor color; 

  gdk_color_parse ("red", &color); //setting a color - you can also use RGB

  gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color); //modifying the background color of the widget

Полная справка о GdkColor можно найти в GNOME'S Dev Documentation .

GTK 3.0

Для gtk + 3 вы можете использовать gtk_css_provider (). Полные руководства и примеры можно найти по адресу GTK + Форумы .

2
ответ дан 7 August 2018 в 18:02

GTK + 1.2

  GtkRcStyle *rc_style;
  GdkColor color;

  color.red = 65535;
  color.green = 0;
  color.blue = 0;

  rc_style = gtk_rc_style_new();

  rc_style->bg[GTK_STATE_NORMAL] = color;

  rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_BG;

  gtk_widget_modify_style (widget, rc_style);

  gtk_rc_style_unref (rc_style);

GTK + 2.24

Использование библиотеки GDK :

GtkWidget *widget; //your widget

  GdkColor color; 

  gdk_color_parse ("red", &color); //setting a color - you can also use RGB

  gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color); //modifying the background color of the widget

Полная справка о GdkColor можно найти в GNOME'S Dev Documentation .

GTK 3.0

Для gtk + 3 вы можете использовать gtk_css_provider (). Полные руководства и примеры можно найти по адресу GTK + Форумы .

2
ответ дан 10 August 2018 в 06:50

GTK + 1.2

  GtkRcStyle *rc_style;
  GdkColor color;

  color.red = 65535;
  color.green = 0;
  color.blue = 0;

  rc_style = gtk_rc_style_new();

  rc_style->bg[GTK_STATE_NORMAL] = color;

  rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_BG;

  gtk_widget_modify_style (widget, rc_style);

  gtk_rc_style_unref (rc_style);

GTK + 2.24

Использование библиотеки GDK :

GtkWidget *widget; //your widget

  GdkColor color; 

  gdk_color_parse ("red", &color); //setting a color - you can also use RGB

  gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color); //modifying the background color of the widget

Полная ссылка на GdkColor можно найти в GNOME'S Dev Documentation .

GTK 3.0

Для gtk + 3 вы можете использовать gtk_css_provider (). Полные руководства и примеры можно найти по адресу GTK + Форумы .

2
ответ дан 15 August 2018 в 18:46
  • 1
    Сначала я попробовал, но в python не было функции gdk.color_parse() IIRC. Позвольте мне перепроверить ... – int_ua 29 June 2012 в 18:47
  • 2
    я не знаком с pygtk, но вы можете посмотреть здесь pygtk.org/docs/pygtk/class-gdkcolor.html – dlin 29 June 2012 в 18:52
  • 3
    кроме того: Warning gtk_widget_modify_bg has been deprecated since version 3.0 and should not be used in newly-written code. Use gtk_widget_override_background_color() instead – int_ua 29 June 2012 в 18:54
  • 4
    я все еще использую GTK + 2.24.Можете ли вы редактировать свой пост с помощью кода, который вы используете для изменения цвета фона? – dlin 29 June 2012 в 18:57
  • 5
    В Python вы можете сделать что-то вроде: [your widget].override_background_color(Gtk.StateFlags.NORMAL,Gdk.RGBA(1.0,0.0,0.0,1)) или [your widget].modify_bg(Gtk.StateFlags.NORMAL,Gdk.color_parse("red")) – AndAC 29 June 2012 в 21:13

Другие вопросы по тегам:

Похожие вопросы: