我正在使用GTK库将GUI应用到我的程序中。简而言之,我每次输入时计算一个变量,然后使用gtk_text_buffer在文本中显示输入。问题是,每当我收到输入(一切都在一个while循环,但它几乎是200行代码,所以我不会发布它),我可以从命令行和GUI看到,输入不更新,除非我关闭窗口,然后它将再次打开并显示更新的结果。经过一些实验,我发现问题是gtk_main。如果我打电话给我,我就有这个问题。如果我没有该程序工作正常,但不会显示GUI。如果我使用循环
while (gtk_events_pending())
{
gtk_main_iteration();
gtk_main();
}
输入一直在更新,但是每次更新都会打开一个新窗口(显示正确的结果,但每个输入都会打开无限)。有没有人有一个解决方案如何不断更新GUI而不必每次都关闭窗口?
答案 0 :(得分:0)
你不应该在一个循环中调用gtk_main();
,因为它自己运行循环:
while (not_exit)
{
gtk_main_iteration();
}
除此之外不清楚为什么你需要这样的结构,gtk_main();
就足够了。