gtk_main更新GUI

时间:2016-03-03 22:47:22

标签: c user-interface gtk

我正在使用GTK库将GUI应用到我的程序中。简而言之,我每次输入时计算一个变量,然后使用gtk_text_buffer在文本中显示输入。问题是,每当我收到输入(一切都在一个while循环,但它几乎是200行代码,所以我不会发布它),我可以从命令行和GUI看到,输入不更新,除非我关闭窗口,然后它将再次打开并显示更新的结果。经过一些实验,我发现问题是gtk_main。如果我打电话给我,我就有这个问题。如果我没有该程序工作正常,但不会显示GUI。如果我使用循环

while (gtk_events_pending())
    {
       gtk_main_iteration();
       gtk_main();  
    }

输入一直在更新,但是每次更新都会打开一个新窗口(显示正确的结果,但每个输入都会打开无限)。有没有人有一个解决方案如何不断更新GUI而不必每次都关闭窗口?

1 个答案:

答案 0 :(得分:0)

你不应该在一个循环中调用gtk_main();,因为它自己运行循环:

while (not_exit)
{
  gtk_main_iteration();
}

除此之外不清楚为什么你需要这样的结构,gtk_main();就足够了。