如何在Gtk + 2中验证GtkWidget的验证时间

时间:2016-11-08 05:49:37

标签: gtk gtk2

我需要知道在更改GtkWidget的内容(安排重绘)后重绘和验证的时间。

无论如何要重新绘制是否重绘或需要等待更多重绘。

1 个答案:

答案 0 :(得分:1)

绕过你需要的方法是延迟滚动直到GTK知道滚动区域有多大。可能最简单的方法是使用g_idle_add()。当没有其他任务需要完成时,添加到其中的回叫将按优先级顺序执行。 GTK确实以高优先级使用空闲函数来进行重绘,但默认优先级应该没问题。

gboolena my_delayed_function(gpointer user_data)
{
    // The function that does the scroll goes here.

    return FALSE;
}

void my_function_that_shows_something()
{
    // Do some drawing.

    // ...

    // Schedule a scroll.
    g_idle_add(my_delayed_function, NULL);
}

作为注释,您必须从该回调返回FALSE,否则将重复调用。