【问题标题】:How do I save multiple entries from multiple Entry widgets in Tkinter?如何从 Tkinter 中的多个条目小部件中保存多个条目?
【发布时间】:2020-08-03 22:35:14
【问题描述】:

在有人将其标记为重复问题之前,请先阅读。

我有 多个 条目小部件,用户可以在其中输入 DoubleVar() 输入。每个输入框都有自己的标签,该标签已手动标记。

通过创建以下函数并创建调用此函数的button,我成功地捕获了one框的条目值-

def get_entry():
    EntryValue=EntryBox.get("1.0","end-1c")
    print(EntryValue)

有没有办法为 多个 输入框 WITH 输入框的标签应用相同的逻辑并将其全部保存到文本中文件?

【问题讨论】:

  • 请再读一遍问题
  • 您的意思是要对所有Entry 小部件使用相同的功能吗?
  • 是的!一键应该可以检索问题中所要求的内容
  • 还有,有这个功能。我猜应该有一种有效的方法来代替每个条目小部件手动插入 .get()
  • 我明白了第一部分,并且可以轻松解决...但没有得到第二部分...您所说的“应该有一种有效的方法是什么意思它而不是为每个条目小部件手动插入.get()" ???

标签: python python-3.x tkinter


【解决方案1】:

不是为函数中的每个条目框添加.get(),而是应该有一种方法将所有值拉到一起

真的没有。 您必须使用.get()但您不必手动操作

在创建窗口布局时,将标签和条目小部件保存在 2 元组列表中,如下所示;

mywidgets = [(Label1, Entry1), (Label2, Entry2), ...]

然后你可以这样做:

def get_entry():
    with open('output.txt', 'w') as out:
        for label, entry in mywidgets:
            out.write(label['text']+entry.get()+'\n')

【讨论】:

  • 这个想法可行,但是要检索标签值,您必须将其替换为 label.cget("text")
  • 所有可配置的属性都可以通过字典式访问来检索。查看更新的答案。
猜你喜欢
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 2013-07-10
  • 1970-01-01
相关资源
最近更新 更多