Tk控件之Combobox
首先要明白Combobox — 下拉框是Tk窗口的控件之一,所以一定需要绑定一个窗口;其次,明白下拉框的代码格式;最后,明白如何选中下拉框某一项并且使用其进行后续操作;
1. 绑定窗口
root = Tk.tk()
root.title("")
root.geometry("")
# ... 对窗口进行一些格式的设定
text = tk.StringVar()
Comb = ttk.Combobox(root, textvariable = text)
注:这个text一定放上去,这样后面才能够获取到选中内容
2. 设置下拉框内容
Comb['value'] = ('A', 'B', 'C') #......
# Comb.pack()
Comb.grid(row=1, column=1)
root.mainloop() #mainloop才能使窗口稳定展示
这里的 .pack()方法和.grid()方法都可以使内容展示到窗口上,但是.grid()方法可以调整控件的位置;
而且经过实践,.grid()方法应该只能设置控件的相对位置:
# 如果只有一个控件的时候,无论如何设置,控件的位置都位于左上角
Comb.grid(row=1, column=1)
Comb.grid(row=1, column=2)
Comb.grid(row=1, column=3)
Comb.grid(row=2, column=3)
# 在加入一个Label控件后,控件位置就能随row, column的改变而相应改变了,不过要注意也是相对的
label = tk.Label(root, text='123')
label.grid(row=1,column=2)
Comb.grid(row=2, column=3)
3. 通过Button控件获取下拉框相应值
button = tk.Button(master=root, text='确认', command=get) #command=xxx 这个xxx就是跳转的函数
button.grid(row=3,column=3)
# 函数部分
def get():
print(text.get())
注意:函数种一定要使用.get()方法,不然得到的会是Tk的一种数据类型,无法正常使用
同时,若想直接作为参数传入函数之中,还可以用到lambda表达式:
#主函数部分
button = tk.Button(master=root, text='确认', command=lambda: getlamb(text.get()))
# 函数部分
def getlamb(t):
print(t)