2017-03-20 1 views
0

Ich habe diesen Code. Ich entferne Import tkinter und importiere Projekt und anderen Code für das einfache Lesen.tkinter Text nach variablen Änderungen umschreiben

from Project import * 

class TechnologyIDE: 
    def __init__(self, master): 
     #Vytvoření master 
     self.master = master 

     #Settings Tk 
     master.title('Technology IDE') 

     #Frame 
     frame = Frame(root) 
     frame.pack() 

     self.frameLEFT = Frame(master) 
     self.frameLEFT.pack(side=LEFT,fill=Y) 

     self.frameRIGHT = Frame(master) 
     self.frameRIGHT.pack(side=RIGHT, expand=True, fill=BOTH) 

     #Vytvoření menu 
     menu = Menu(master) 
     root.config(menu=menu) 

     #Boxy 
     self.showCodewitHLines() 
     self.showProjectToolbar() 
     self.showNavigator() 

    def showProjectToolbar(self): 
     actualProject = project.actualProject 
     listbox = Listbox(self.frameLEFT, width=50) 
     listbox.pack(side=TOP, anchor=W) 
     if actualProject == "": 
      listbox.insert(END, "None project opened") 
     else: 
      print("Vidim"+actualProject) 
      listbox.delete(0, END) 
      listbox.insert(END, actualProject) 
      var = os.listdir(actualProject+"/") 
      for va in var : 
       listbox.insert(END," "+va) 

    def showCodewitHLines(self): 
     TextArea = Text() 
     ScrollBar = Scrollbar(root) 
     ScrollBar.config(command=TextArea.yview) 
     TextArea.config(yscrollcommand=ScrollBar.set) 
     ScrollBar.pack(side=RIGHT, fill=Y) 
     TextArea.pack(expand=True, fill='both') 

    def showNavigator(self): 
     listbox = Listbox(self.frameLEFT,width=50) 
     listbox.pack(side=TOP, anchor=W) 
     listbox.insert(END, "NAVIGATOR") 


    root = Tk() 
    ide = TechnologyIDE(root) 
    root.mainloop() 

und ich habe diesen Code in meinem Project.py

class Project: 
    def __init__(self): 
     self.actualProject = "" 

    def newProject(self): 
     self.top = Toplevel() 
     self.top.title("Creating new project") 
     self.top.focus_set() 

     self.projectname = Entry(self.top) 
     self.projectname.pack() 

     btnClose = Button(self.top, text="Close", command=self.top.destroy) 
     btnCreate = Button(self.top, text="Create", command=self.createProject) 
     btnCreate.pack() 
     btnClose.pack() 

    def createProject(self): 
     self.newpath = "Projects/"+self.projectname.get() 
     if not os.path.exists(self.newpath): 
      os.makedirs(self.newpath) 
      fn = open(self.newpath+"/"+"run.py", "w+") 
      self.top.destroy() 
      self.actualProject = self.newpath 
      print("Project"+self.actualProject) 

project = Project() 

Und ich habe dieses Problem. Wenn ich ein neues Projekt erstelle, das erfolgreich erstellt wurde, sehe ich es in Dateien. Ich möchte, dass es in gui geladen wird (showProjectToolbar). Also erstelle ich ein neues Projekt, es sollte in die Variable geladen werden und das GUI ist in der Schleife, also sollte es in der GUI geladen und sichtbar sein, aber das ist es nie. Ich gebe u Foto hier zum besseren Verständnis enter image description here

Antwort

1

Sie sollten nicht schaffen und ein Listbox jedes Mal packen showProjectToolbar genannt wird.

erstellen es in TechnologyIDE ‚s __def__ Funktion, wie folgt aus:

self.listbox = Listbox(self.frameLEFT, width=50) 
self.listbox.pack(side=TOP, anchor=W) 

Dann, wenn Sie ein neues Projekt erstellen, ist es nur noch hinzufügen: self.listbox.insert(END, actualProject).

+0

geändert, aber immer noch der gleiche Fehler –

+0

Haben Sie versucht, das Ergebnis zu debuggen? Wird der Zusatz sogar ausgeführt? Ich brauche mehr Informationen als das. – galah92

+0

Ich rekodiere dieses Projekt, so dass ich den Code nicht verfügbar habe. Aber es gab ein Problem, dass das tatsächliche Projekt nicht sichtbar war –