python - 如何自动使 python tkinter 自动进入?
问题描述
我一直在 python tkinter 中制作条目,但我发现制作每个单独的条目非常低效。如何自动创建条目并单独获取所有条目的值?
entry_word1 = tkinter.Entry(second_frame, width=30)
entry_word1.grid(column=1, row=0)
entry_word2 = tkinter.Entry(second_frame, width=30)
entry_word2.grid(column=1, row=1)
entry_word3 = tkinter.Entry(second_frame, width=30)
entry_word3.grid(column=1, row=2)
entry_word4 = tkinter.Entry(second_frame, width=30)
entry_word4.grid(column=1, row=3)
entry_word5 = tkinter.Entry(second_frame, width=30)
entry_word5.grid(column=1, row=4)
entry_word6 = tkinter.Entry(second_frame, width=30)
entry_word6.grid(column=1, row=5)
entry_word7 = tkinter.Entry(second_frame, width=30)
entry_word7.grid(column=1, row=6)
entry_word8 = tkinter.Entry(second_frame, width=30)
entry_word8.grid(column=1, row=7)
entry_word9 = tkinter.Entry(second_frame, width=30)
entry_word9.grid(column=1, row=8)
entry_word10 = tkinter.Entry(second_frame, width=30)
entry_word10.grid(column=1, row=9)
解决方案
这是一个不使用列表存储Entry
对象的示例
并通过将每个绑定到返回键来访问它们
带有回调函数getdata
getEntry
使用索引值可以找到任何条目小部件。
import tkinter
master = tkinter.Tk()
second_frame = tkinter.Frame(master)
second_frame.grid(row=0, column=0, sticky='nsew')
def getdata(ev):
print(ev.widget.get())
def getEntry( a ):
return list( second_frame.children.values() )[ a ]
for a in range(10):
b = tkinter.Entry(second_frame, width=30)
b.grid(row=a, column=0, sticky='nsew')
# important to bind each one for access
b.bind('<Return>', getdata)
master.resizable(False, False)
master.mainloop()
推荐阅读
- java - 如果登录成功,Spring Boot @WebMvcTest 返回 404
- cmd - 将 where 命令的第一个结果存储到变量中并停止搜索
- r - 如何填写 R 中的行?
- cvxpy - CVXPY DCPError 的凸函数
- autofac - “FluentValidation.IValidator”类型不是开放的泛型类
- ios - 在 CoreData 中获取实体导致崩溃
- jquery - 使用 Jquery 查找分配给表中行的编号并返回整行
- r - 子集数据框返回空数据框
- hyperledger-fabric - 具有与 Fabric CA 不同的 PKI 的 Hyperledger
- botframework - 如何调试在 Microsoft Teams 上运行的 Bot Framework BOT