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的成员,但这可能无法修复您正在使用的代码示例。请注意,信号已被替换为信号,因此您需要更新实际正确绘制的函数(我认为在您的情况下)。请参阅此链接以查看切换到 Gtk3 所需的更改列表。您可以参考应用程序提供的来源或GtkWidgetgtk_widget_get_windowexpose_eventdrawon_expose_eventgtk-demodemos/gtk-demo从 Gtk3 源代码获取示例代码。
关于在 Gtk2 的情况下不显示图像,如果您正在使用图像样本,请确保图像文件在源中提到的路径中可用。
希望这可以帮助!

于 2012-01-04T05:29:47.147 回答