如何 运行 对从 tkinter 文本小部件返回的文本起作用

How to run function on returned text from tkinter text widget

我的 tkinter gui 使用的是文本小部件,下面的代码是我如何 .get 输入数据的。

def all_descriptions():
    data = customer_description.get("1.0", END)
    print(data)

如果用户输入:

Item 1
Item 2
Item 3

它 returns 值完全一样。

Item 1
Item 2
Item 3

为了尝试以 LIST 格式返回值,我还将 .get 函数更改为以下内容:

def all_descriptions():
    data = [customer_description.get("1.0", END)]
    print(data)

当我这样做时,returns 条目如下:

['Item 1\nItem 2\nItem 3\n\n']

尽管我已经阅读了无数 google 和 Whosebug 线程,但我对这个过程有几个问题。

  1. 输入的数据是否作为字符串值返回?我发现 post 提到了这一点,但想验证一下。
  2. 如何访问此数据以 运行 我的功能?我尝试了几种不同的方法,但我最近的尝试如下。
original_description = (all_descriptions())

# Product for Item One
def item_product(original_description, product_dict):
    for key in product_dict :
        if key in original_description():
            return product_dict[key]
    return ("What product is this?")
print(item_product(original_description, product_dict))

以上显然不起作用,因为我想在条目小部件的每一行上 运行 def item_product()。谁能指出我正确的方向?

customer_description.get("1.0", END) returns 单个字符串。如果您想要行列表而不是字符串,请使用 split

在换行符上拆分

此外,您应该使用 "end-1c" 而不是 "end"END。后者将获得 tkinter 自动添加的额外换行符。

return customer_description.get("1.0", "end-1c").split("\n")