2012-01-04 9 views
1

カイロを使ってgtk3に散布図を描画しようとしています。開始するには、ここで例を使用しています:http://zetcode.com/tutorials/cairographicstutorial/カイロとgtk3を使用する

GTK2で正常にコンパイルされますが、画像は表示されません。彼らはgtk3でコンパイルしますが、次のエラーを与えていない:

example.c: In function ‘on_expose_event’: 
example.c:17:31: error: ‘GtkWidget’ has no member named ‘window’ 

この上の任意の助けをいただければ幸いです。

btw私はArchLinuxを使用してこれが役立つ場合は書き込みを使用しています。

答えて

7

Gtk3にはかなりの変更があります。メンバーwindowGtkWidgetの一部として公開されていません。メンバーはGtkWidgetPrivateに移動されました。これは不透明な構造であるため、GtkWidgetから直接メンバーにアクセスすることはできません。アクセサー関数を使用する必要があります。windowメンバーがGtkWidgetの場合は、gtk_widget_get_windowを使用できますが、これは作業中のコードサンプルを修正できない可能性があります。 expose_eventシグナルはdrawシグナルに置き換えられているので、実際には適切に描画されている機能を更新する必要があります(ご質問の場合はon_expose_event)。 Gtk3に切り替えるために必要な変更の一覧は、this linkを参照してください。サンプルコードを取得するには、gtk-demoアプリケーションまたはdemos/gtk-demoソースをGtk3ソースコードから参照してください。
Gtk2の場合に画像が表示されない場合は、画像サンプルで作業している場合は、画像ファイルがソースに記載されているパスで使用可能であることを確認してください。
これが役立つことを願っています!

関連する問題