gtkmm: ProgressBar
-
Hallo,
braucht man für einen Progressbar einen eigenen Thread? Ich möchte in einer for-Schleife einen ProgressBar benutzen, aber es wird immer nur der Rahmen des Fensters gezeichnet. Im Buch (http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/index.html) steht ja, wie man den darzustellenden Anteil angibt, aber nichts zur Anzeige.
Bei den Beispielen habe ich auch nichts gefunden.
http://www.gtkmm.org/docs/gtkmm-2.4/examples/
Danke für Antworten
-
Wenn du den Fortschritt der ProgressBar veränderst, wird das erst sichtbar, sobald GTK wieder zeichnet. Wenn du aber irgendwo das Programm blockst, dann klappt das nicht. Solltest also am besten in einen Thread auslagern, kommt aber auch drauf an was du machst.
-
Ich möchte nur, dass das Fenster jeweils fertig gezeichnet wird, bevor die dann folgende Berechnung ausgeführt wird. Dann darf die GUI gerne blockiert sein.
Aber ein Aufruf show() scheint das nicht zu bewirken, gibt es da wirklich keine Möglichkeit, das zu erzeugen?
Bis jetzt habe ich mich von den Threads lieber ferngehalten...
Wenn es nur mit Threads geht, habe ich ein paar Fragen
1. gibt es dafür ein Beispiel?
2. Gibt es einen bestimmten GUI-Thread oder so, den man dann nehmen muss?
3. Soll ich eher den ProgressBar oder die Berechnung in einen Thread packen?4. Wenn das Programm ansonsten nicht Thread-sicher ist, muss ich wohl alle anderen Buttons etc. mit set_sensitive(false) ausgrauen?
Ich habe auch die Beiträge Threads in GTK gelesen, aber ich bräuchte ein bis zwei grundlegendere Aussagen zur Verwendung von Threads...
Vielen Dank für Hinweise!
-
-
Danke schön...
nur ist dort das Hauptproblem nicht gelöst: Wenn es eine arbeitende Methode gibt, stoppt das ganze, bis die Arbeit fertig ist.
Vielleicht kann man den Spieß umdrehen und den Body der arbeitenden For-Schleife in eine Signal-Handler-Methode packen, so dass zwischendurch immer wieder die GUI gezeichnet wird? Weiß da jemand was genaueres zu?
Aber ich habe noch was anderes gefunden, was vielleicht nützlich ist (muss ich mir erst noch genauer anschauen):
http://www.c-plusplus.net/forum/viewtopic-var-t-is-113528.html
Danke auch weiteren Antworten!