2016-08-08 8 views
-1

gtk+3の例をコンパイルして実行しようとしていますが、残念なことにgtk + 2マニュアルの例ですから、gtk+3gtk+2をダウンロードできません。 は一例では、このような機能がいくつかあります:コンパイルする場合'GtkToggleButton {別名struct _GtkTogglebutton}'にはメンバー 'active'がありません

void entry_toggle_editable(GtkWidget *checkbutton, 
GtkWidget *entry) 
{ 
    gtk_editable_set_editable(GTK_EDITABLE(entry),GTK_TOGGLE_BUTTON(checkbutton)->active); 
} 

が、私はこのエラーを得た:

'GtkToggleButton {aka struct _GtkToggleButton}' has no member named 'active' 

私はすべてのマニュアルに見えました。私は問題を回避するために見つけることができた、おそらくそれはリリースの互換性の問題ですが、gtk+3マニュアルは、初めてGtkに近づく誰かのために本当に役に立たないです。

答えて

0

GTK + 2とGTK + 3の最も大きな変更の1つは、GTK + 3がすべてのパブリック構造フィールドを取り除き、GObjectプロパティで置き換えることです。だから、代わりにあなたはg_object_get()が同時に同じオブジェクトから複数のプロパティを取得することができますので、

gboolean active; 
g_object_get(checkbutton, "active", &active, NULL); 

NULLがあると言う

GTK_TOGGLE_BUTTON(checkbutton)->active 

言って、これから私が必要とするすべてであるNULL氏は述べていますが」

GTK +はまた、型チェックを追加するアクセサメソッドを提供します)。」を呼び出すので、あなたも

gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton)) 
を言うことができます

利用可能な場合は、g_object_get()を直接呼び出してください。

GTK +のマニュアルにはa tutorialが付属しています。おそらく気づいたように、GTK + 2の例を変更せずにGTK + 3を学ぶことはできません。 GTK + 3の例を見つけるのにもっと時間を費やす必要があります。

関連する問題