【问题标题】:gtk_main update GUIgtk_main 更新界面
【发布时间】:2016-03-04 11:49:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: c user-interface gtk


    【解决方案1】:

    您不应该在循环中调用gtk_main();,因为它会自行运行该循环:

    while (not_exit)
    {
      gtk_main_iteration();
    }
    

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

    【讨论】:

    • gtk_main,根据文档应该足够了。但除非我关闭窗口,否则它不会循环。基本上只有当我关闭窗口时它才会再次启动循环(然后它会自动重新启动)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多