Uruchamianie formularza Tkinter w osobnym wątku

Napisałem krótki moduł, który można przekazać obrazowi i po prostu tworzy okno Tkinter i wyświetla je. Problem, który mam, polega na tym, że nawet gdy tworzę instancję i wywołuję metodę wyświetlającą obraz w osobnym wątku, program główny nie będzie kontynuowany, dopóki okno Tkinter nie zostanie zamknięte.

Oto mój moduł:

<code>import Image, ImageTk
import Tkinter


class Viewer(Tkinter.Tk):
    def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.initialize()

    def initialize(self):
        self.grid()

    def show(self,img):
        self.to_display = ImageTk.PhotoImage(img)
        self.label_image = Tkinter.Label(self,image=self.to_display)
        self.label_image.grid(column = 0, row = 0, sticky = "NSEW")
        self.mainloop()
</code>

Wydaje się, że działa dobrze, z wyjątkiem sytuacji, gdy wywołam go z mojego programu testowego, jak ten poniżej, wydaje się, że mój program testowy nie będzie kontynuowany, nawet jeśli został uruchomiony w innym wątku.

<code>import Image
from viewer import Viewer
import threading

def showimage(im):
    view = Viewer(None)
    view.show(im)

if __name__ == "__main__":
    im = Image.open("gaben.jpg")
    t = threading.Thread(showimage(im))
    t.start()
    print "Program keeps going..."
</code>

Myślę, że moim problemem jest to, że powinienem tworzyć nowy wątek w samym module, ale chciałem po prostu spróbować i zachować prostotę, ponieważ jestem nowym użytkownikiem Pythona.

W każdym razie z góry dziękuję za wszelką pomoc.

edit: Dla jasności staram się stworzyć moduł, który wyświetli obraz w oknie Tkintera, dzięki czemu będę mógł używać tego modułu w dowolnym momencie, gdy chcę wyświetlić obraz. Problem, który mam, polega na tym, że za każdym razem, gdy program używa tego modułu, nie może wznowić działania dopóki okno Tkinter nie zostanie zamknięte.

questionAnswers(4)

yourAnswerToTheQuestion