【发布时间】:2018-03-08 07:09:55
【问题描述】:
我正在尝试创建一个函数,将 enter 绑定到“插入”框架中的下一个输入字段。除了在最后一个输入字段的情况下,它将返回所有输入的文本字段。我尝试使用迭代器来获取下一个输入字段无济于事。我是 Python 和 Tkinter 的新手。我的主要问题围绕着“getinsert”函数,我怎样才能专注于下一个输入字段?有某种方式来获取当前焦点并为其添加 1?另外,我如何检查它是否在最后一个字段上,以便我可以调用“getinsert”函数?
任何帮助将不胜感激
import tkinter as tk
from tkinter import messagebox
master = tk.Tk()
insertnames = ["Title", "Location", "Tags", "Section", "Blah"]
insertentries = {}
insertlabels = {}
main = tk.Frame(master)
insert = tk.Frame(master)
currentnames = iter(insertnames[0])
def mainmenu():
main.pack()
insertbutton.pack(fill = 'x')
def insertcall():
main.forget()
insert.pack()
insertform()
insertentries["Title"].bind('<Return>', insertfocus)
insertentries["Location"].bind('<Return>', insertfocus)
insertentries["Tags"].bind('<Return>', getinsert)
def getinsert(event):
for entry in insertentries:
print (insertentries[entry].get())
insertentries[entry].delete(0, 'end')
insert.forget()
mainmenu()
def insertfocus(event):
currentnames.next()
insertentries[currentnames].focus()
def insertform():
i = 0
for name in insertnames:
e = tk.Entry(insert)
e.grid(row = i, column = 1)
insertentries[name] = e
lab = tk.Label(insert, text = name)
lab.grid(row = i, column = 0)
insertlabels[name] = lab
i += 1
insertbutton = tk.Button(main, text = "Insert", command = insertcall)
mainmenu()
tk.mainloop()
【问题讨论】:
标签: python python-3.x tkinter