如何使用ttk组合框和键盘输入,使用回车键作为事件



我正在努力学习如何使用ttk组合框,并将其设置、填充、使用按钮控件使其响应所列项目的选择,以及绑定到ComboboxSelected事件。后者适用于编码在中的列出项目,但我缺少一些东西来使其适用于在组合框中键入的条目。我可以键入项目,如果我单击按钮,它会做出响应,但键入项目并按enter键无效。我正在努力让组合框在没有按钮的情况下完全发挥作用。

import tkinter as tk
from tkinter import ttk
window = tk.Tk()
window.minsize(600, 400)
window.title("ttk Combo box")

def chooseNumbers():
label.configure(text = "You Selected " + mynumber.get())
def callbackfn(event):
label.configure(text = "You Have Selected " + mynumber.get())
label = ttk.Label(window, text = "Choose A Number")
label.grid(column = 0, row = 0)
mynumber = tk.StringVar()
combobox = ttk.Combobox(window, width = 15 , textvariable = mynumber,state='normal')
combobox['values'] = (5,6,7,8,9,10,12,14,15)
combobox.grid(column = 0, row = 1)
button = ttk.Button(window, text = "Click Me", command = chooseNumbers)  # don't want this
button.grid(column = 1, row = 1)
combobox.bind("<<ComboboxSelected>>",callbackfn)    # how to get this to work with keyboard entry?
window.mainloop()

这就是您想要的吗?

import tkinter as tk
from tkinter import ttk
window = tk.Tk()
window.minsize(600, 400)
window.title("ttk Combo box")

def chooseNumbers(event):
label.configure(text = "You Selected " + mynumber.get())
def callbackfn(event):
label.configure(text = "You Have Selected " + mynumber.get())
label = ttk.Label(window, text = "Choose A Number")
label.grid(column = 0, row = 0)
mynumber = tk.StringVar()
combobox = ttk.Combobox(window, width = 15 , textvariable = mynumber,state='normal')
combobox['values'] = (5,6,7,8,9,10,12,14,15)
combobox.grid(column = 0, row = 1)
combobox.bind("<<ComboboxSelected>>",callbackfn)    # how to get this to work with keyboard entry?
combobox.bind("<Return>",chooseNumbers)
window.mainloop()

当您按下按钮Enter时,它将显示"you Selected x"。只需绑定一个事件<Return>并调用一个函数。

最新更新