【问题标题】:Getting the Length of a Text widget获取文本小部件的长度
【发布时间】:2019-05-27 11:37:20
【问题描述】:

我正在尝试获取 Text 小部件内的文本长度,但 len() 不起作用。

我试过这样做:

variable = len(text_widget)

这不起作用。

这是我得到的错误:

AttributeError: Text instance has no attribute '__len__'

这是text_widget的创建:

self.text_widget= Text(self.frame1, font=("Arial", 20), fg="white", bg="#DAA520", height = 12)

【问题讨论】:

  • 你可以试试type()看看是不是真的str
  • 你能告诉我们你的text_widget的创建吗?
  • @funie200 这里self.text_widget= Text(self.frame1, font=("Arial", 20), fg="white", bg="#DAA520", height = 12)

标签: python python-2.7 tkinter


【解决方案1】:

使用小部件获取文本

actual_text = text_widget.get(1.0, END)

那你就可以了

len(actual_text)

【讨论】:

  • 使用END会让你得到比实际内容多一个字符,因为文本小部件总是在所有文本之后添加一个换行符(即,如果你输入'hello'你会得到一个字符串长度 6.
  • @BryanOakley,这是真的 - 好点!当然 6 是正确的长度,因为你得到的是 'hello\n'。您可能想或不想在其上调用 strip() 或类似的东西来摆脱额外的换行符(如果是这样的话,当然在调用 len 之前这样做) - 这取决于您想用它做什么。在一般情况下,您会得到一个换行符和包含它的 [正确] 长度。
  • 当然,6 是 get 返回的正确长度,但不是用户输入的正确长度。
猜你喜欢
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 2015-01-02
  • 2012-04-16
  • 1970-01-01
  • 2013-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多