Python tkinter窗口打开时,始终要求用户输入

Python tkinter窗口打开时,始终要求用户输入,python,multithreading,tkinter,Python,Multithreading,Tkinter,我正在创建一个程序,我需要这样做,当tkinter GUI打开时,用户仍然可以在控制台中键入内容。因此,当窗口打开时,用户可以输入命令 我该怎么做呢 谢谢。就像其他多线程程序一样,在新线程中启动worker(本例中为tkinter GUI)。下面是一个例子: import Tkinter as tk import threading class GUI(tk.Frame): def __init__(self, master=None, *args, **kwargs):

我正在创建一个程序,我需要这样做,当tkinter GUI打开时,用户仍然可以在控制台中键入内容。因此,当窗口打开时,用户可以输入命令

我该怎么做呢


谢谢。

就像其他多线程程序一样,在新线程中启动worker(本例中为tkinter GUI)。下面是一个例子:

import Tkinter as tk
import threading

class GUI(tk.Frame):
    def __init__(self, master=None, *args, **kwargs):
        tk.Frame.__init__(self, master, *args, **kwargs)
        lbl=tk.Label(self, text='Tkinter program')
        lbl.pack()

class Worker(threading.Thread):
    def run(self):
        root = tk.Tk()
        win = GUI(root)
        win.pack()
        root.mainloop()

w = Worker()
w.start()

你不能,程序被冻结在tk的mainloop中,你指的是哪个控制台?这如何允许用户仍然在控制台中键入内容?@martineau假设它是从REPL启动的(我假设OP对“console”的意思是这样的)或在交互模式下(
-I
标志)这将启动GUI并返回REPL提示符。我相信tkinter不是线程安全库。这会影响tkinter的行为吗?@DarthCadeus当一个模块不是线程安全的时,这意味着您不应该对该模块使用多个线程。只要所有tkinter调用都在同一个线程中,就可以了。也就是说,如果可能的话,tkinter真的应该在主线程中。