2016-04-25 18 views
1

Ich habe ein GTK-Programm mit vielen Tasten. Wenn ich einen von ihnen drücken, mein Programm startet einen Puffer, Zeile für Zeile angezeigt wird, auf diese Weise:Puffer im gewünschten Moment anzeigen

... 
    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(); 
    ... 

Weil ich eine Menge von Daten verwalten, ist diese Methode sehr langsam ist. Ich möchte einen zweiten Ebenenmodus, wenn eine Variable einen hohen Wert erreicht (zum Beispiel eine int scndplane = 1). Meine Idee für diesen Modus ist eine normale Ausführung des Hauptprogramms, aber die Anzeige des Puffers nur am Ende des Programms (eine Art Backbuffer).

Gibt es einen effizienten Weg, dies zu tun? Danke.

Antwort

0

Warum machst du nicht einfach eine Methode und nennst sie dann am Ende deines Programms?

Wenn Sie während der Ausführung den Knopf drücken, setzen Sie einen Wahrheitswert auf wahr.

Dann am Ende des Programms, werden Sie etwas entlang der Linien von haben:

if(isClicked) 
    displayBuffer(); 
+0

das ist die Frage. Speichere den Puffer in der zweiten Ebene und zeige ihn mit einer gtk-Funktion oder etwas zu einem bestimmten Zeitpunkt an. Aber gibt es irgendeine Funktion oder Methode, um dies zu tun? – Keles

+0

Ich habe GTK2 und GTK3 verwendet und es gibt keine solche Funktion. Was Sie tun können, ist es selbst zu schreiben. – Mxsky

+0

Mache die Funktion selbst? Irgendeine Annäherung oder ein Rat, um das zu machen? Ich kann keine Methode finden. – Keles

Verwandte Themen