【问题标题】:TextVariable not working文本变量不起作用
【发布时间】:2020-07-01 02:01:51
【问题描述】:

我正在尝试从 Tkinter 中的条目小部件中获取文本。它适用于 Entry1.get(),但不适用于 textvariable

我做错了什么?

from Tkinter import *
master = Tk()
v = StringVar()

def Entered(p1):
    print 'Got: ', Entry1.get()
    print 'Got: ', v.get()

Entry1 = Entry(master, text = '', width = 25, textvariable = v)
Entry1.pack()
Entry1.bind('<Return>', Entered)

【问题讨论】:

  • 什么不起作用?它对我有用。
  • 这是因为您在其中使用了文本。如果你删除它,它工作正常。至于为什么,我不知道,正在寻找。

标签: python tkinter


【解决方案1】:

问题在于text

如果你给出text 参数,textvariable.get() 似乎不会返回任何内容。不知道是不是bug。

from Tkinter import *
master = Tk()
v = StringVar()

def Entered(p1):
    print 'Got: ', Entry1.get()
    print 'Got: ', v.get()

Entry1 = Entry(master, width = 25, textvariable = v) # No text now
Entry1.pack()
Entry1.bind('<Return>', Entered)
master.mainloop()

如果你输入asd,它会返回:

Got:  asd
Got:  asd

如果您将条目更改为以下有趣的部分:

Entry1 = Entry(master, text = 'sajt', width = 25, textvariable = v)

如我所料,v.get() 而不是sajt 仍然不会返回任何内容。

【讨论】:

  • 条目小部件没有选项text。 Tkinter 将其视为textvariable 的简写。使用它与使用textvariable 两次没有什么不同,tkinter 使用第一次。
  • 是的,我也是这么想的,但是如果您检查 tkinter 条目的主页,则会有一个包含文本和文本变量的示例。
  • 您说的是哪个“主页”?如果有一个页面同时使用两者,那就错了。
  • 在这里effbot.org/tkinterbook/entry.htm 你可以找到一行:entry = Entry(parent, text=caption, textvariable=content)。是的,“主要”不是一个好词。
  • 该页面不正确。我会尝试联系作者。
猜你喜欢
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
  • 2014-05-03
  • 2011-08-15
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多