2017-03-04 27 views
-1

我正在創建一個程序,並且我需要在tkinter GUI打開時這麼做,用戶仍然可以在控制檯中鍵入內容。所以當一個窗口打開時,用戶可以輸入一個命令。tkinter窗口打開時總是要求用戶輸入

我該如何解決這個問題?

謝謝。

+1

你不能,程序被凍結在tk的主循環裏 – abccd

+0

你指的是哪個控制檯? – martineau

回答

0

就像其他任何多線程程序一樣,在新線程中啓動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() 
+0

這是如何讓用戶仍然可以在控制檯中鍵入內容的? – martineau

+0

@martineau假設它是從REPL啓動的(我認爲這就是OP用於'console'的意思)或交互模式('-i'標誌),這將啓動GUI並退回到REPL提示符。 – Novel

相關問題