从功能重绘GTK

时间:2013-05-23 02:25:15

标签: c gtk

我有一个使用的功能:

  g_signal_connect (area, "expose-event", G_CALLBACK (cb_expose), data);
  gtk_widget_show_all (main_window);
  gtk_main();

我用数据传递参数。 cb_expose函数使用数据在画布上绘制图形。

在此功能之后,我想更改变量数据并使用更新的数据重绘画布。我该怎么做?

想到在函数中有一些参数会引发重绘的标志。但不知道如何处理这个问题。

感谢所有帮助!

1 个答案:

答案 0 :(得分:1)

我怀疑你需要添加这样的一行:

gdk_window_invalidate_rect(widget-> main_window,& widget-> allocation,FALSE);

返回cb_expose()函数之前。此功能强制立即重新绘制矩形,而不是稍后重绘。如果你正在使用双缓冲,你也必须交换缓冲区。

请参阅https://developer.gnome.org/gdk/stable/gdk-Windows.html#gdk-window-invalidate-rect