在线程中刷新主界面
线程初始化
//线程初始化,要在gtk_init之前调用
if(!g_thread_supported()){
g_thread_init(NULL);
gdk_threads_init();
}
//初始化gtk
gtk_init(&argc,&argv);
在gtk_main函数处
在线程中需要更新界面的地方
最后编译链接时需要加的参数
-lgthread-2.0 -lglib-2.0 -lintl
在回调函数中刷新主界面的方法:
在gtk的回调函数中,是阻塞主界面操作的,也就是说,在回调函数中多次设置主界面控件文本是不会在主界面更新的,最后只能等待回调函数返回,主界面只显示最后一次设置的文本
通过
调用gtk_main_iteration()函数对主循环进行迭代。检查是否有任何事件需要通过调用gtk_events_pending()函数处理。这两个函数将控制权临时交给主界面。实现界面的刷新显示。在密集计算中显示进度条,就可以通过这种方式让主界面刷新进度条进度