Executando um formulário Tkinter em um segmento separado

Eu escrevi um pequeno módulo que pode ser passado por uma imagem e simplesmente cria uma janela Tkinter e a exibe. O problema que estou tendo é que, mesmo quando eu instanciar e chamar o método que exibe a imagem em um thread separado, o programa principal não continuará até que a janela do Tkinter seja fechada.

Aqui está meu módulo:

<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>

Parece funcionar bem, exceto quando eu chamo do meu programa de teste como o abaixo, ele não parece permitir que meu programa de teste continue, mesmo quando iniciado em um thread diferente.

<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>

Eu acho que talvez o meu problema seja que eu deveria estar criando um novo thread dentro do próprio módulo, mas eu estava querendo apenas tentar mantê-lo simples, já que eu sou novo no Python.

De qualquer forma, obrigado antecipadamente por qualquer ajuda.

edit: Para esclarecer, eu estou apenas tentando fazer um módulo que irá exibir uma imagem em uma janela Tkinter, para que eu possa usar este módulo sempre que eu quiser exibir uma imagem. O problema que estou tendo é que sempre que um programa usa este módulo, ele não pode continuar até que a janela do Tkinter seja fechada.

questionAnswers(4)

yourAnswerToTheQuestion