combobox获取下拉框的索引值
代码如下:#设置“朝向”列表框
label_orient = Label(frame_prehouse,text="朝向:",font=("宋体",15))
label_orient.grid(row=2,columnspan=2,sticky=W,padx=160,pady=20)
Orient = StringVar()
list_orient = ttk.Combobox(frame_prehouse, textvariable=Orient, state='readonly', width=12)
list_orient.grid(row=2,columnspan=2,sticky=E)
list_orient["value"] = ( '东', '东北', '东南', '北', '南', '西', '西北', '西南')
list_orient.current(0)
def getorient(event):
return list_orient.current()
print(getorient())
list_orient.bind("<<ComboboxSelected>>", getorient)
这个方法不能够动态获取到下拉列表框的索引值...,比如我点击“东南”选项,想通过getorient方法获取到2这个索引值,目前方法获取不到 么写过,但是看出错提示,你没有绑定事件
逻辑上来说,应该有个下拉框数值改变事件,具体可以百度找找。 z5560636 发表于 2021-5-8 10:24
么写过,但是看出错提示,你没有绑定事件
逻辑上来说,应该有个下拉框数值改变事件,具体可以百度找找。
您好,我试着print(getorient()) ,报错是这样的. missing 1 required positional argument: 'event' 1. def 要写在前面,组件前面
2. 触发函数,通常不用return,而是用传递函数或直接在内部处理,如使用Label显示
参考:
root = Tk()
root.geometry("500x400")
frame_prehouse = ttk.Frame(root, )
frame_prehouse.grid(row=0, column=0)
# 设置“朝向”列表框
def getorient(event):
lb = Label(frame_prehouse, text=list_orient.get())
lb.grid(row=3, column=1)
# print(list_orient.get())
# label_orient = ttk.Label(frame_prehouse,text="朝向:",font=("宋体",15))
# label_orient.grid(row=2,columnspan=2,sticky=W,padx=160,pady=20)
Orient = StringVar()
list_orient = ttk.Combobox(frame_prehouse, textvariable=Orient, state='readonly', width=12)
list_orient["value"] = ( '东', '东北', '东南', '北', '南', '西', '西北', '西南')
list_orient.grid(row=2,columnspan=2,sticky=E)
list_orient.current(0)
list_orient.bind("<<ComboboxSelected>>", getorient)
root.mainloop()
页:
[1]