2016-09-04 20 views
0

Ich benutze Tkinter für meine Python3 GUI. Das Skript, das ich geschrieben habe, als ich in IDLE gearbeitet habe. Aber wenn ich versuche, es auszuführen, ohne die GUI reagiert nicht.python3 tkinter gui reagiert nicht auf Ausführung

Hier ist der Code:

#! python3 

from tkinter import * 
import tkinter as tk 

class Program: 

    nameC = "" 
    master = "" 
    varC = "" 

    def callback(self): 
     self.nameC= filedialog.askopenfilename() 

    def __init__(self): 
     self.master = Tk() 
     self.varC = StringVar(self.master) 

     l1 = Label(text="Open file", relief=RIDGE,width=15) 
     l1.grid(row=0,column=0) 
     b1 = Button(text='Open', command=self.callback) 
     b1.grid(row=0,column=1) 


program = Program() 
mainloop() 

Bisher habe ich einen Knopf und ein Etikett. Wenn ich auf die Schaltfläche klicken, wird ein Dateidialog mit der Callback-Funktion geöffnet

EDIT: fixed einen Fehler im Code Wenn es hilft, ich bin mit dem Windows

+0

die Vertiefung falsch sieht –

+0

Was meinst du mit „es ausführen, ohne die GUI“? Ist es dein gesamtes Skript oder der Tkinter-Teil? Ist 'die GUI' IDLE oder dein TKinter-Code? –

+0

Bitte geben Sie den Code ein, der ausgeführt wird. Auch nach dem Fixieren von Einzügen gibt es NameError und AtbibuteError, wenn das behoben ist. –

Antwort

0

So, nachdem das Skript in der Konsole ausgeführt wird (wie erwähnt nicht IDLE) ich, dass herausgefunden würde ich Dateidialog importieren:

#! python3 

from tkinter import * 
from tkinter import filedialog # this is what I needed 
import tkinter as tk 

class Program: 

    nameC = "" 
    master = "" 
    varC = "" 

    def callback(self): 
     self.nameC= filedialog.askopenfilename() 

    def __init__(self): 
     self.master = Tk() 
     self.varC = StringVar(self.master) 

     l1 = Label(text="Open file", relief=RIDGE,width=15) 
     l1.grid(row=0,column=0) 
     b1 = Button(text='Open', command=self.callback) 
     b1.grid(row=0,column=1) 


program = Program() 
mainloop()