【问题标题】:Is there a way to retrieve data from an entrybox in a specific frame in Python Tkinter?有没有办法从 Python Tkinter 中特定帧的输入框中检索数据?
【发布时间】:2021-06-14 16:48:47
【问题描述】:

我正在制作一个 python Tkinter GUI。

我正在尝试创造一种方法来创建无限的“任务标签”。这意味着无限帧。每个“标签”(框架)都有相同的输入框。

有没有办法从特定帧中检索数据?我了解使用 .get() 有效,但是如何从特定框架中使用 .get()?

例如,如果:

taskTab1 输入框包含“hello”

taskTab2 输入框包含“再见”

如何从 taskTab1 中检索信息。如果我使用 .get() 我会从 taskTab2 获取条目。

谢谢

【问题讨论】:

  • 最好在列表中保留条目的引用,但您也可以使用:<tk.Frame>.winfo_children()。这将返回所有框架的孩子的列表
  • 您无需做任何特别的事情。在 python 中——不仅仅是 tkinter——要调用对象上的方法,您只需要对该对象的引用。您对问题的描述非常不清楚。请edit您的问题包括minimal reproducible example
  • 顺便说一句,如果您有单个输入框,则无需为每个输入框创建一个框架

标签: python tkinter get frame


【解决方案1】:

我能想到的最简单的方法是这样的:

from tkinter import Tk, Frame, Entry, Button


root = Tk()

for i in range(10):
    frame = Frame(root)
    frame.pack()

    entry = Entry(frame)
    entry.pack(side='left')

    Button(frame, text='Get Text', command=lambda e=entry: print(e.get())).pack(side='right')

root.mainloop()

(也可以使用 functools 中的 partial 函数,但这似乎更简单)基本上,按钮被分配了一个函数,该函数将始终使用给它的特定 Entry 小部件执行,所以它旁边的那个在这种情况下。

【讨论】:

    猜你喜欢
    • 2020-12-01
    • 2022-06-12
    • 2016-12-26
    • 1970-01-01
    • 2019-09-25
    • 2015-10-06
    • 2023-03-08
    • 1970-01-01
    • 2019-12-30
    相关资源
    最近更新 更多