Hallo Spezialisten,
System: Windows (mit GTK+ ext.)
Sprache: C
Ich verwende das GTK+ fuer die Fensterprogrammierung
Ich habe ein Programm geschrieben, welches den Inhalt einer Datei
zeilenweise kopiert.
Zeilen mit bestimmten Inhalt werden im Testfenster (GTK) ausgegeben.
Das funkioniert sehr gut.
Der Status des kopieren soll mit einer "progress_bar"
(Fortschrittsbalken) sichbar gemacht werden.
Das GTK Widget habe ich erstellt.
Es wird angezeigt.
Es arbeitet aber nicht so wie ich das gerne haette.
Der Kopiervorgang startet -> progressbar 0% (entspricht 0.0)
endet -> progressbar 100%(entspricht 1.0)
Aber die Zwichenschritte werden nicht angezeigt.
Hier ein Auszug aus meinem Code:
1 | while(feof(w_datei)==0){
|
2 |
|
3 | fgets(buffer_array, sizeof(buffer_array),w_datei);
|
4 |
|
5 | if(strstr(buffer_array, kette) != 0){
|
6 | pvalue = zeile / zeilen_max;
|
7 | gtk_progress_bar_update(GTK_PROGRESS_BAR(progressbar1), pvalue);
|
8 | printf ("Prozent %f\n", pvalue);
|
9 | gtk_text_insert((text), NULL, NULL,NULL, buffer_array, strlen(buffer_array));
|
10 | zeile=zeile + 1.0;
|
11 | }
|
12 | }
|
Die Variable zeilen_max habe ich vorher ermittelt.
Die Variable pvalue nimmt einen Wert zwischen 0.0 (0%) bis 1.0 (100%)
an.
Der Wert von pvalue wird stetig aktualisiert und wird an
gtk_progress_bar_update uebergeben.
Die Progressbar zeigt aber nur 0% und nach Abschluss des Kopieren 100%
an
Die Zwischenschritte werde nicht angezeigt.
Gebe ich der progressbar einen beliebigen festen Wert ein z.B. 0.3 dann
werden die 30% in der progressbar angezeigt.
Kann jemand helfen.
Im Voraus vielen Dank.