Skip to main content
 首页 » 编程设计

python之如何在 tkinter 中通过线程打开多个框架

2025年05月04日15davidwang456

我试图通过多个线程打开多个框架。 这是我的代码。

''' 
This is the module for test and studying. 
Author:Roger 
Date: 2010/10/10 
Python version: 2.6.5 
''' 
 
 
import threading, Tkinter 
 
 
class Application(Tkinter.Frame): 
    def __init__(self, master=None): 
        Tkinter.Frame.__init__(self, master) 
        self.columnconfigure(50) 
        self.rowconfigure(50) 
        self.grid() 
        self.createWidgets() 
        self.mainloop() 
 
    def createWidgets(self): 
        self.quitButton = Tkinter.Button (self, text='Quit', command=self.quit ) 
        self.quitButton.grid() 
 
 
class lab_404(threading.Thread): 
    ''' 
    Is this the doc_string of lab_404? 
 
    Can there be mutiple_window? 
    I do know why is it like this? 
    Why is the button still on the frame? 
    ''' 
 
    myWindow = None 
 
    def __init__(self, computer = 10, server = None, table = 1, chair = 1, student = 2, myWindow = None): 
        threading.Thread.__init__(self) 
        self.__computer = computer 
        self.__server = server 
        self.__table = table 
        self.__chair = chair 
        self.__student = student 
        self.myWindow = Application() 
        #self.myWindow.mainloop()    #mainloop method is here, I don't where to put it. 
 
    def getComputer(self): 
        return self.__computer 
 
    def getServer(self): 
        return self.__server 
 
    def getMyWindow(self): 
        return self.myWindow 
 
 
    def setServer(self, Server): 
        self.__server = Server 
 
 
    def run(self): 
        print super(lab_404, self).getName(), 'This thread is starting now!' 
        print super(lab_404, self).getName(), 'This thread is ending.' 
 
 
if __name__ == '__main__': 
    for n in xrange(1, 10, 1): 
        tn = lab_404(server = n)  #Try to make a loop. 
        tn.start() 

上面的代码一直作为一个框架运行,然后停止(mainloop?)。在我关闭前一个窗口之前,它不会继续下一帧。很合适。 我怎样才能让它自动打开新的框架?

请您参考如下方法:

我不认为你可以为所欲为。一般来说,不需要运行多个框架和多个事件循环。您可以在单个线程和单个事件循环中拥有多个帧。