Python Tkinter控件之Combobox下拉框如何选中内容并使用

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)
  • 其实text绑定的不是下拉框选中内容,而是文本框里的内容,所以即使你自己输入字符串到文本框中,其也会正常显示出来

你可能感兴趣的:(python)