Ich versuche eine Klassenfunktion aufzurufen, die Text in ein Konsolenfenster in Tkinter schreibt.Wie führe ich eine Klassenfunktion in einer anderen Datei aus?
Allerdings, wenn ich versuche, es zu starten. Ich erhalte den folgenden Fehler.
TypeError: write() missing 1 required positional argument: 'txt'
Hier ist mein vollständiger Code:
main.py
from tkinter import *
from tkinter.filedialog import askdirectory
import os
import nam
class Window(Frame):
def __init__(self, master = None):
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self):
self.master.title("Source Data Checker")
self.pack(fill=BOTH, expand=1)
self.pathLabel = Label(text='Select the location of the source data below and press "Generate Excel"')
self.pathLabel.place(x=110, y=40)
self.selectFolderButton = Button(self, text='Select Folder', command=self.openfile)
self.selectFolderButton.place(x=180, y=350)
self.executeButton= Button(self, text='Generate Excel', command=self.run)
self.executeButton.config(state=DISABLED)
self.executeButton.place(x=330, y=350)
self.outputWindow = Text()
self.outputWindow.place(x=100, y=80)
self.outputWindow.config(width=50, height=15)
def openfile(self): #open the file
self.directory = askdirectory()
if self.directory != '':
nam.panels_count(self.directory)
self.executeButton.config(state=NORMAL)
print(nam.a_nam)
def run(self, txt):
pass
def write(self, txt):
self.outputWindow.insert(END, str(txt))
self.update_idletasks()
if __name__ == '__main__':
root = Tk()
root.geometry("600x400")
app = Window(root)
root.mainloop()
nam.py
from main import *
def panels_count(folder):
Window.write('test')
Ich dachte, ich kann es instanziiert müssen. Aber wenn ich das mache, wird das Programm nicht einmal ausgeführt.
Was fehlt mir?