2017-09-16 1 views
0

Ich habe eine Messaging-Anwendung aufgebaut, aber es scheint, falsche Syntax zu haben:Nameerror: name 'Frame' ist nicht definiert (Python)

from tkinter import messagebox 


from AESEncDec import * 
from MD5Hashing import * 
from RSAEncDec import * 

color = 'lightblue' #color our background 


class Application(Frame): 

    def __init__(self, root=None): 

     Frame.__init__(self, root) 
     self.frame_width = 700 
     self.frame_height = 400 

     # Set configuration our frame 
     self.config(width = self.frame_width, height = self.frame_height, bg = color) 
     self.pack() 

     # Create textBox for input data 
     self.textbox_one = Text() 
     self.textbox_one.place(x = 30, y = 170, height = 200, width = 300) 

     # Create textBox for result 
     self.textbox_two = Text() 
     self.textbox_two.place(x = 370, y = 170, height = 200, width = 300) 

     label_input_text = Label(text = "Input text: ", bg = color) 
     label_input_text.place(x = 30, y = 155, height = 10, width = 70) 

Während der Ausführung ich die folgende Fehlermeldung erhalten:

Traceback (most recent call last): File "/home/artur/Documents/MScProject/MSc Project/Task #179276/main_program.py", line 11, in class Application(Frame): NameError: name 'Frame' is not defined

Was könnte das Problem sein?

Antwort

1

Frame ist eine Klasse aus dem tkinter Modul.

zu beheben:

from tkinter import Frame 

ein Beispiel in der offiziellen Dokumentation Siehe: https://docs.python.org/3.7/library/tkinter.html#a-simple-hello-world-program

Sie müssen auch Text und Label importieren:

from tkinter import Frame 
from tkinter import Text 
from tkinter import Label 

Oder:

from tkinter import * 

Hier ist, wie Sie Ihren Code beheben können (ich entfernte die ungenutzten Importe):

import tkinter 

color = 'lightblue' # color our background 


class Application(tkinter.Frame): 
    def __init__(self, root=None): 
     super(Application, self).__init__(root) 
     self.frame_width = 700 
     self.frame_height = 400 

     # Set configuration our frame 
     self.config(width=self.frame_width, height=self.frame_height, bg=color) 
     self.pack() 

     # Create textBox for input data 
     self.textbox_one = tkinter.Text() 
     self.textbox_one.place(x=30, y=170, height=200, width=300) 

     # Create textBox for result 
     self.textbox_two = tkinter.Text() 
     self.textbox_two.place(x=370, y=170, height=200, width=300) 

     label_input_text = tkinter.Label(text="Input text: ", bg=color) 
     label_input_text.place(x=30, y=155, height=10, width=70) 


root = tkinter.Tk() 
app = Application(root) 
app.mainloop() 
Verwandte Themen