2014-02-12 115 views
0

我有一块在功能码称为check_pwd即做:GTK + V3返回控制到主重绘

if(g_strcmp0(s1,s2) != 0){ 
    gtk_label_set_text(GTK_LABEL(a), "error"); 
    return -1; 
} 
else{ 
    gtk_label_set_text(GTK_LABEL(a), "ok"); 
    //other things 
} 

虽然因为程序返回控制到主功能显示“错误”信息,我如何显示“ok”消息?

+0

你没有给出足够的细节给出有意义的答案。什么是“//其他事物”?你阻止了那里的主循环?你不应该阻止GTK +中的主循环,而是像空闲和超时一样使用源代码来注入你自己的代码:https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html – ebassi

回答

0

当然,只要运行主循环:

while(gtk_events_pending()) 
    gtk_main_iteration(); 

See the GTK+ documentation,其中建议将上面:如果任何事件正在等待

检查。

这可以用来更新UI和调用超时等,同时做一些时间密集型计算。

+0

但是这并不总是奏效,我认为重新运行主体并不是一个好的实践,因为你可以重新进入问题! – polslinux

+0

@polslinux据我所知,这是在UI中使阻止进程仍然响应的推荐方式。这不会重新运行所有'gtk_main()',它只处理所有传入的事件。再次请参阅我链接到的文档。 – unwind