我有一个使用的功能:
g_signal_connect (area, "expose-event", G_CALLBACK (cb_expose), data);
gtk_widget_show_all (main_window);
gtk_main();
我用数据传递参数。 cb_expose函数使用数据在画布上绘制图形。
在此功能之后,我想更改变量数据并使用更新的数据重绘画布。我该怎么做?
想到在函数中有一些参数会引发重绘的标志。但不知道如何处理这个问题。
感谢所有帮助!
答案 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