这是我的两个功能:
def selectBadge(a):
curItem = SelectBadgeView.focus()
inter_var = SelectBadgeView.item(curItem)
ListValues = inter_var['values']
print(ListValues)
SelectedBadge.set("Selected Badge: "+str(ListValues[0]))
SelectedBadgeStr=str(ListValues[0])
return SelectedBadgeStr
def selectScout(a,SelectedBadgeStr):
print(a)
if SelectedPatrol.get()==("Selected Patrol: Please Select A Patrol"):
tk.messagebox.showerror("ERROR","Please select a Patrol")
return
if SelectedBadge.get()==("Selected Badge: Please Select A Badge"):
tk.messagebox.showerror("ERROR", "Please select a Badge")
return
print(SelectedBadgeStr)
return
我想将变量SelectedBadgeStr
从selectBadge()
传递到selectScout()
。
变量a
是tkinter树视图窗口小部件使用的内部变量。
a = <ButtonRelease event state=Button1 num=1 x=144 y=39>
我尝试过:
return SelectedBadgeStr
但是这不起作用。
该函数的调用者:
SelectScoutView.bind('<ButtonRelease-1>', selectScout)
答案 0 :(得分:0)
在定义函数SelectedBadgeStr
之前,您是否声明selectBadge(a)
为空字符串?
所以只需声明为:
SelectedBadgeStr = ''
def selectBadge(a):
curItem = SelectBadgeView.focus()
.
.
.
应该可以。
答案 1 :(得分:0)
您还可以使用共享的全局变量:
在函数使用之外声明变量:
SelectedBadgeStr = None
在函数开始处使用:
global SelectedBadgeStr
每当在函数中使用变量时,都将访问全局变量