2016-04-25 133 views
1

我有一个带有很多按钮的GTK程序。当我按下其中的一个,我的计划开始由线显示缓冲区,行,用这种方式:在需要的时候显示缓冲区

... 
    gchar * stuff = g_strdup_printf("Some text"); 
    gtk_text_buffer_insert(buffer, &iter, stuff, -1); 
    g_free(stuff); 
    while (gtk_events_pending()) 
    gtk_main_iteration(); 
    ... 

因为我管理了大量的数据,这种方法是很慢的。 当某些变量达到较高值时,我想要第二个平面模式(例如int scndplane = 1)。我对这种模式的想法是主程序的正常执行,但是只在程序结束时显示缓冲区(一种backbuffer)。

有没有任何有效的方法来做到这一点? 谢谢。

回答

0

为什么不简单地做一个这样的方法,然后在程序结束时调用它?

如果您在执行过程中按下按钮,请将布尔值设置为true。

然后在程序结束时,你将沿着线的东西:

if(isClicked) 
    displayBuffer(); 
+0

这是个问题。继续将缓冲区保存在第二层平面中,并使用gtk函数或某物在任何特定时间显示缓冲区。但是有没有任何功能或方法可以做到这一点? – Keles

+0

我使用GTK2和GTK3,并没有这样的功能。但你可以做的是自己写。 – Mxsky

+0

自己做这个功能吗?任何方法或建议,以做到这一点?我找不出任何方法。 – Keles