1

gtk3 で cairo を使用して散布図を描画しようとしています。まず、ここの例を使用しています: http://zetcode.com/tutorials/cairographicstutorial/

それらは gtk2 で正常にコンパイルされますが、画像は表示されません。それらは gtk3 でコンパイルされませんが、次のエラーが発生します。

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

これに関するヘルプは大歓迎です。

ところで、それが役立つ場合は、これに ArchLinux を使用して書き込みを使用しています。

4

1 に答える 1

7

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

于 2012-01-04T05:29:47.147 に答える