GTK3: получение свойства класса стиля - PullRequest
1 голос
/ 26 октября 2011

Я пытаюсь получить цвет текста класса стиля GTK.У меня есть GtkStyleContext с путем к виджету и классами, которые я хочу получить их свойства.

GtkWidgetPath* widgetPath = gtk_widget_path_new ();
gtk_widget_path_append_type(widgetPath, GTK_TYPE_WINDOW);
gtk_widget_path_iter_set_name(widgetPath, -1 , "UnityPanelWidget");

GtkStyleContext *context = gtk_style_context_new();
gtk_style_context_set_path(context, widgetPath);
gtk_style_context_add_class(context, "gnome-panel-menu-bar");
gtk_style_context_add_class(context, "unity-panel");

Я использовал gtk_style_context_lookup_color, и он получает обычный цвет текста, но не цвет текста в gnome-panel-menu-bar или unity-panel.

Я пытался использовать GtkCssProvider, но он получает общий стиль без добавленных классов.

Я использую его в приложении Qt, чтобы получить нативный внешний вид GTK3 иЧувствовать.Этот код отлично работает в приложении GTK.

Спасибо!

1 Ответ

0 голосов
/ 20 февраля 2012

Насколько я знаю, вы не сможете использовать приведенный выше код, потому что Qt использует Gtk2, а не Gtk3.Это означает, что вы получите дамп ядра с сообщением, похожим на:

Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in 
the same process is not supported

Возможно, вы сможете сделать что-нибудь взломанное, получив доступ к библиотекам Gtk 3 из процесса diff, но это хак.

...