Tkinter - daemon Threads beenden sich nicht

Fragen zu Tkinter.
Antworten
fump
User
Beiträge: 2
Registriert: Samstag 21. März 2015, 14:04

Hallo zusammen,

Ich experimentierte gerade mit Tkinter und Threads herum.
Ziel ist es mir über mehrere "worker" threads Bilder in eine Queue zu senden welche von der Tkinter GUI angezeigt werden soll.

Als Test-Beispiel habe ich untenstehenden Code.

Code: Alles auswählen

from Tkinter import *
import threading
import time

def worker(i):
    while True:
        print i
        time.sleep(2)

class fumpGUI(object):
    def __init__(self,myParents):

        self.f_img = Frame(myParents)
        self.f_img.pack(side = TOP)

        self.l_faucet = Label(self.f_img)
        self.l_faucet["text"] = "test"
        self.l_faucet.pack()

root = Tk()
fump = fumpGUI(root)

for i in range(1):
    d = threading.Thread(name = 'worker', target = worker, args =(i,))
    d.daemon = True
    d.start()

root.mainloop()
Meine Problem/Frage ist, das beim Beenden der GUI die Threads weiter laufen obwohl diese doch als daemon deklariert wurden.
Kann mir einer erklären warum das so ist? bzw. wie eine Lösung aussehen sollte?

Ich habe zwar lauffähige empfohlene Lösungen im Netz gefunden
http://code.activestate.com/recipes/829 ... ronous-io/
will aber meinen bisherigen Code gerne weiterverwenden ... und das Problem verstehen.

Danke für Tipps
fump

(Python 2.7 und PyScripter 2.5.3)
BlackJack

@fump: Ich kann das Problem nicht nachvollziehen. Ist das vielleicht ein IDE-Problem? Was passiert wenn Du das Programm ausserhalb der IDE startest?
fump
User
Beiträge: 2
Registriert: Samstag 21. März 2015, 14:04

Hallo BlackJack,

ich sag mal nur ..aarrrrgghhh .. ja scheint ein IDE Problem zu sein. Danke für den schnellen Tipp.

fump
Antworten