GTK3:获得样式的类属性

时间:2011-10-26 13:45:44

标签: qt gtk theming gtk3

我正在尝试获取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 :(得分:0)

据我所知,你不能使用上面的代码,因为Qt使用的是Gtk2而不是Gtk3。这意味着您将获得一个核心转储,其消息类似于:

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

你可以通过从diff进程访问Gtk 3库来做一些hacky,但这是一个hack。

相关问题