【问题标题】:How to run function on returned text from tkinter text widget如何对从 tkinter 文本小部件返回的文本运行函数
【发布时间】:2021-04-02 18:51:47
【问题描述】:

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

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

如果用户输入:

Item 1
Item 2
Item 3

它返回的值完全一样。

Item 1
Item 2
Item 3

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

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

当我这样做时,它会返回如下条目:

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

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

  1. 输入的数据是否以字符串值返回?我发现一篇帖子提到了这一点,但想验证一下。
  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()。谁能指出我正确的方向?

【问题讨论】:

    标签: python-3.x tkinter tkinter-text


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      相关资源
      最近更新 更多