Seite 1 von 1

Verzögerte Textausgabe im QTextBrowser

Verfasst: Donnerstag 12. April 2018, 09:33
von Patrick1990
Hallo,

ich versuche gerade eine Art Programmablauf innerhalb einer Methode im QTextBrowser durch unterschiedliche Textausgaben darzustellen.
Leider wird der Text erst in den Text Browser geschrieben, wenn die Methode durchlaufen ist.
Um ein bisschen Verzögerung zu erzielen habe ich einfach eine Schleife eingefügt.

Was mache ich dort falsch?
Die print-Ausgabe in der Konsole jedoch funktioniert wie sie soll.

Hier einmal die Methode:

Code: Alles auswählen

def find_paths(self):
    self.textBrowser_Progress.append('test')
    print("test")


    for i in range(0,10000):
        self.textBrowser_Progress.append(str(i))
        
    self.textBrowser_Progress.append("finished")
    print("finisihed")

Re: Verzögerte Textausgabe im QTextBrowser

Verfasst: Donnerstag 12. April 2018, 09:41
von Sirius3
@Patrick1990: bei GUIs muß sich das Programm (fast immer) in der Event-Schleife befinden, damit es die Nutzerinteraktion durchführen kann. Daher verbieten sich langdauernde Schleifen. Lösung ist, einen Timer zu benutzen.

Re: Verzögerte Textausgabe im QTextBrowser

Verfasst: Donnerstag 12. April 2018, 09:44
von Patrick1990
Danke für die super schnelle Antwort.
Wie würde ich in diesem Fall mit einem Timer Besserung erzielen?

Re: Verzögerte Textausgabe im QTextBrowser

Verfasst: Donnerstag 12. April 2018, 10:48
von __deets__
Du musst ein QTimer-Objekt erzeugen, dessen timout Signal mit einem Slot deiner Wahl verbinden, und in diesem Slot zaehlst du deine Variable hoch. QTimer sind wirklich gut dokumentiert:

http://doc.qt.io/qt-5/qtimer.html

Re: Verzögerte Textausgabe im QTextBrowser

Verfasst: Montag 16. April 2018, 15:40
von Patrick1990
Vielen Dank, werde es mal versuchen.