Выбор цвета фона темы gtk - PullRequest
2 голосов
/ 14 июня 2010

Я почти новичок в gtk, и я ищу способ получить цвет фона для текущей темы в gtk. Итак, этот код:

GdkColor color = gtk_widget_get_style(mainWindowHandle)->bg[GTK_STATE_NORMAL];

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

Ответы [ 2 ]

3 голосов
/ 18 июня 2010

Попробуйте подключить к сигналу «реализации» виджета и затем получить информацию о стиле, которую вы хотите.

static void
widget_realized_cb (GtkWidget *widget) {
  GdkColor *color = NULL;
  GtkStyle *style = gtk_widget_get_style (widget);

  if (style != NULL) {
    color = style->bg[GTK_STATE_NORMAL];

    /* Do whatever you want with it here */
  }
}

void foobar () {
  g_signal_connect (mainWindowHandle,
                    "realize",
                    G_CALLBACK (widget_realized_cb),
                    NULL);
}
0 голосов
/ 22 июня 2010

Я добавил

gtk_widget_realize(mainWindowHandle);

перед gtk_widget_get_style и отлично работает!

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