2011-10-26 41 views
1

GTKスタイルのクラスのテキストカラーを取得しようとしています。 私はウィジェットのパスとそのプロパティを取得するクラスを持つGtkStyleContextを持っています。GTK3:スタイルのクラスプロパティを取得する

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パネル・メニュー・バーまたはユニティ・パネル内のテキストの色を取得します。

私はGtkCssProviderを使ってみましたが、追加したクラスがないジェネリックスタイルを取得しました。

私はQtアプリケーションでこれを使用して、ネイティブのGTK3のルックアンドフィールを取得しています。 このコードはGTKアプリケーションで正常に動作しています。

ありがとうございます!

答えて

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 

あなたはデフ・プロセスからのGtk 3 LIBSにアクセスすることにより、ハック何かを行うことができるが、ハックであるかもしれません。

+0

同じプロセスでGtk2とGtk3をQtで別のスタイルを使って実行したときのエラーを回避して、QtでGtk3を実行することができました。私はいくつかのハックをやり終えた。とにかく返信いただきありがとうございます! –

関連する問題