2017-03-04 25 views
-1

Ich erstelle ein Programm und ich muss es so machen, während die tkinter GUI geöffnet ist, kann der Benutzer noch etwas in die Konsole eingeben. Wenn also ein Fenster geöffnet ist, kann der Benutzer einen Befehl eingeben.Immer nach einer Benutzereingabe fragen, während tkinter Fenster geöffnet ist

Wie würde ich das machen?

Vielen Dank.

+1

Sie nicht können, wird das Programm innerhalb tk des mainloop gefroren – abccd

+0

Welchem ​​Konsole beziehen Sie? – martineau

Antwort

0

Starten Sie den Worker (in diesem Fall tkinter GUI) wie jedes andere Multithread-Programm in einem neuen Thread. Hier ein Beispiel:

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

Wie kann der Benutzer noch etwas in die Konsole eingeben? – martineau

+0

@martineau Angenommen, es wurde von der REPL gestartet (ich nehme an, das ist, was OP bedeutet mit "Konsole") oder im interaktiven Modus ('-i" Flag) dies wird die GUI starten und zurück zur REPL-Eingabeaufforderung. – Novel