I am trying to use var1, which is the variable for a Tkinter Checkbutton in another function but I keep getting a Type Error which I am assuming is a result of var1 being a local scope in init. Normally, I would just return the var1 value (in order to use it in another function) but in the case that it is used in an init function I am not sure what to do.
class Example(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
var1 = tk.IntVar() # <-- local var1 variable
self.include_subf = ttk.Checkbutton(self, text="Include subfolders", variable=var1,
onvalue=1, offvalue=0)
def a_function(self):
if var1.get() == 1: # <-- want to use var1 here
pass
CodePudding user response:
This is exactly what a class is for. Rather than saving the value into a local variable var1
save it as an attribute (a variable belonging to the class instance across its entire lifespan) with self.var1 = ...
. Then you can access it in all the other instance methods with self.var1
.