Konsolenausgabe in tkinter ausgeben

Fragen zu Tkinter.
Nobuddy
User
Beiträge: 995
Registriert: Montag 30. Januar 2012, 16:38

Hallo EyDu

Danke für Deine Unterstützung! :wink:

Dein Code funktioniert bei mir so nicht.
Aber so würde er funktionieren:

Code: Alles auswählen

    def sampler(self):
   
        if not self.queue.empty():
            try:
                data = self.queue.get_nowait()
            except queue.Empty:
                pass
            else:
                self.text.insert("end", data)
                self.text.see("end")
       
        if self.worker:
            if not self.worker.is_alive():
                self.enable_close_button()

        self.win.after(50, self.sampler)
Wäre das so in Ordnung?
'self.queue.task_done()' wird das hier nicht mehr benötigt?

Das 'True' habe ich eliminiert.
Was sich verändert hat, ist daß ich 'destroy()' jetzt statt 'quit() verwenden muß, damit das Fenster sich wieder schließt.
Dabei erhalte ich immer folgende Meldung:
invalid command name "28829240callit"
while executing
"28829240callit"
("after" script)
Was kann man dagegen tun?

Grüße Nobuddy
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Was heißt denn "funktioniert nicht"? Was passiert? Gibt es einen Fehler?

Wie weiter oben schon geschrieben: du darfst kein self.queue.empty()-Aufruf machen und dich dann darauf verlassen, dass das Ergebnis noch beim get(_nowait)-Aufruf gilt.
Das Leben ist wie ein Tennisball.
Nobuddy
User
Beiträge: 995
Registriert: Montag 30. Januar 2012, 16:38

Habe Dein Codeschnipsel 1:1 übernommen.
Das Terminal öffnet sich zwar, aber es kommt keine Ausgabe.
Fehlermeldung, gibt es keine.
Antworten