Tkinter Gui ScrolledText Insert From Different Class - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: GUI (https://python-forum.io/forum-10.html) +--- Thread: Tkinter Gui ScrolledText Insert From Different Class (/thread-15223.html) |
Tkinter Gui ScrolledText Insert From Different Class - whisperquiet - Jan-08-2019 Hey all, I feel like I'm pretty close, but I cannot seem to figure out why my calls to the function TextWindowWriteare not going through and I would greatly appreciate help with this code. from tkinter import ttk import tkinter as tk import tkinter.scrolledtext as tkst class someGui(tk.Tk): def __init__(self,parent): self.parent=parent self.Window() self.textBox=textBoxClass(self.parent) #saving the instance def Window(self): self.parent.configure(bg='white') self.parent.geometry("1000x500") self.parent.title("Example Window") self.someFrame = ttk.Frame(self.parent) self.someFrame.grid(row=0, column=0, sticky='nesw') #changed sticky definition for tk requirements textBoxSeparate=textBoxClass(self.parent) # the initial inclusion of the textbox in the frame self.someFunction() #no input needed def someFunction(self): #otherstuff # self.textBox.textDropIn() #there is no parent attribute in textDropIn, so I removed it # self.textBox.insert(tk.INSERT, "Some test text.") #split call to two lines and changed to tk.INSERT textVar="This is a test." self.textBox.TextWindowWrite(textVar) class textBoxClass(): #removed tkst.ScrolledText in class call because instance was created in textDropIn def __init__(self,parent): self.root=parent # super().__init__() #kept receiving TypeError: object.__init__() takes no arguments, thus removed args self.textDropIn() #removed parent attribute from function call def textDropIn(self): #removed parent attribute from definition self.someText = tkst.ScrolledText(master=self.root, wrap=tk.WORD, width=50, height=20) self.someText.grid(row=0, column=4, rowspan=7, columnspan=4, pady=20, padx=20) def TextWindowWrite(self,textToWrite): self.someText.insert(tk.INSERT,textToWrite) def main(): root =tk.Tk() sg=someGui(root) root.mainloop() if __name__=='__main__': main()My entire goal here is to update the text window created with ScrolledText so that I can write text based on the operations of other functions in a different class. I am having trouble calling the functions from a different class correctly. RE: Tkinter Gui ScrolledText Insert From Different Class - Larz60+ - Jan-08-2019 you have a bad recursion issue here: It hurts to try and follow. instead of using 'some', suggest you preceded function calls and shared variables with an abbreviation of the class they belong to. |