Hallo Ubuntuusers.
Bitte euch, meine Frage mal durchzulesen und eventuell hat ja jemand einen Tipp für mich.
Programmiere mit GTK3 und habe festgestellt, das der Bildschirm zur Laufzeit des Programms grundsätzlich nur aktualisiert wird, wenn sich das Programm in der Main-Schleife sich befindet. Befindet sich das Programm zur Laufzeit innerhalb einer aufgerufenen Funktion, wird zwar der darin enthaltene Code abgearbeitet, aber Änderungen die den Bildschirm betreffen, wie z.B. Text einfügen in einem gtk_textview, werden aber erst am Bildschirm dargestellt bzw. geändert, wenn die aufgerufene Funktion abgearbeitet ist und das Programm sich wieder in der Main-Schleife sich befindet.
Gibt es da eine Möglichkeit in GTK3, womit man die Aktualisierung des Bildschirms so ändern kann, das auch Aktualisierungen des Bildschirms innerhalb eines Funktionsaufrufes stattfinden können?
Hierzu mehr Details: In dem Funktionsaufruf wird als erster Schritt ein Text-String in ein gtk_textview eingefügt. Im zweiten Schritt wird dieser Text-String über die TTYS0 an eine Maschine gesendet. Im dritten Schritt wird auf die Antwort der Maschine in einer Schleife gewartet, welches ca. 4 Sekunden dauert. Im vierten Schritt wird der Antwort-String der von der Maschine über TTYS0 empfangen wurde ebenfalls im gtk_textview eingefügt. Dann ist der Funktionsaufruf beendet.
Normalerweise sollte es so sein, das der zu sendende Text-String erst einmal in gtk_textview dargestellt wird. Dann auf die Antwort der Maschine ca. 4 Sekunden gewartet wird und dann die Antwort der Maschine nach den ca. 4 Sekunden ebenfalls im gtk_textview erscheint.
Passieren tut aber folgendes: Der Text-String der erst einmal im gtk_textview erscheinen sollte wird im gtk_textview nicht angezeigt. Nach der Wartezeit auf die Antwort der Maschine von ca. 4 Sekunden erscheint nun der erste Text-String und auch gleichzeitig der Antwort-String der Maschine, weil hier nun der Funktionsaufruf beendet ist und das Programm sich wieder in der Main-Schleife sich befindet, wo erst hier der Bildschirm und somit auch der Inhalt des gtk_textview aktualisiert wird!
Das Programm selbst und auch der Funktionsaufruf innerhalb des Programms funktionieren soweit und auch ohne Fehler. Lediglich die Aktualisierung des Bildschirms ist innerhalb des Funktionsaufrufs wegen der Wartezeit von 4 Sekunden auf die Antwort der Maschine blockiert! Hat da jemand eine Idee, wie man das besser machen könnte?
Ich danke schon mal im voraus für eure Hilfe. Tom.