'Local variable referenced before assignment (TKINTER)
I'm getting an UnboundLocalError
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1264.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1921, in __call__
return self.func(*args)
File "C:\Users\Ya Bish\Projects\Obracun Sati\main.py", line 249, in item_selected
app = EmpWindow(top,record)
UnboundLocalError: local variable 'record' referenced before assignment
when asking for filename and
def __init__(self,master):
self.master = master
self.openButton = Button(self.frame, text="Open",
command=self.openFile)
...
self.tree = Treeview(self.master, columns=self.columns, show="headings")
...
self.tree.bind('<<TreeviewSelect>>', self.item_selected)
def openFile(self):
...
self.tree.delete(*self.tree.get_children())
filename = filedialog.askopenfilename()
calc(filename)
for e in emps:
self.tree.insert('', END, values=e.treeValues)
while this Toplevel() window is either active or have been previously active.
def item_selected(self, event):
for selected_item in self.tree.selection():
item = self.tree.item(selected_item)
record = item['values'][0]
top = Toplevel()
app = EmpWindow(top,record)
top.mainloop()
EmpWindow is just a notebook class with two tabs defined and couple of labels so I don't think that code is necessary. This may be an error with event and Bind but I don't understand that part at all so I don't even know how to approach it.
Solution 1:[1]
This might be happening because your for-loop in item_selected is not even getting a single iteration in which case record will never be defined. A simplified version of this is the following
def f():
for x in range(0):
print(x)
print(x)
f()
This gives the exact same error as your code. This kind of error occurs whenever you reference a variable before you assign it inside functions.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Tecnical Compute |
