我有一个问题是尝试将包含在Text
框中的(1)或(2)的单词划分为2 OptionMenu
。错误是__init__() missing 1 required positional argument: 'value'
,它发生在第26行(和第27行):opt1=OptionMenu(root,var1,*spl()[0])
。如果你看看会很感激!
root=Tk()
text=Text(root,height=10,width=40)
text.pack()
def spl():
Get=text.get(1.0,END)
Get=Get.split()
A=[]
B=[]
for i in range(len(Get)):
if Get[i][:-4:-1] == '(1)':
A.append(Get[i])
elif Get[i][:-4:-1] == '(2)':
B.append(Get[i])
else:
continue
return A,B
btn=Button(root,command=spl,text='Refresh')
btn.pack()
var1=IntVar()
var1.set('1st list')
var2=IntVar()
var2.set('2nd list')
opt1=OptionMenu(root,var1,*spl()[0])
opt2=OptionMenu(root,var2,*spl()[1])
opt1.pack()
opt2.pack()
root.mainloop()
答案 0 :(得分:0)
感谢@fhdrsdg我修复了这段代码。也许我修复它的方式并不专业,但至少它有效。 (我没有为空数组A和B写一个例外,但我认为这不应该是困难的。)
root=Tk()
text=Text(root,height=10,width=40)
text.pack()
def spl():
Get=text.get(1.0,END)
Get=Get.split(',')
A=[]
B=[]
for i in range(len(Get)):
if Get[i][-3:] == '(1)':
A.append(Get[i])
elif Get[i][-3:] == '(2)':
B.append(Get[i])
else:
continue
global opt1,opt2
opt1.destroy()
opt2.destroy()
opt1=OptionMenu(root,var1,*A)
opt1.pack()
opt2=OptionMenu(root,var2,*B)
opt2.pack()
var1=IntVar()
var1.set('1st list')
var2=IntVar()
var2.set('2nd list')
opt1=OptionMenu(root,var1,value='0')
opt2=OptionMenu(root,var2,value='0')
btn=Button(root,command=spl,text='Refresh')
btn.pack()
opt1.pack()
opt2.pack()
root.mainloop()
答案 1 :(得分:-1)
“OptionMenu”的第三个参数是元组。总是元组,而不是一个元素
def spl():
...
return A,B
opt1=OptionMenu(root,var1, *tuple(spl()))