【问题标题】:Python: Tkinter Entry widget is not workingPython:Tkinter 条目小部件不工作
【发布时间】:2015-06-20 00:13:16
【问题描述】:
from Tkinter import *
root = Tk()
ticker1 = StringVar()
ticker2 = StringVar()
root.title("Choose Companies")
Label(root,
          text = "Company No. 1",
          fg = "black",
          font ="Helvetica 16 italic").pack()
name = Entry(root,name = ticker1 ).pack()
Label(root,
          text = "Company No. 2",
          fg = "black",
          font ="Helvetica 16 italic").pack()
name1 = Entry(root,name1 = ticker2).pack()
root.mainloop()

代码不起作用它给了我这个错误:

exceptions.TypeError: 无法连接“str”和“instance”对象

在 python GUI 中获取条目小部件的格式看起来是正确的。
我正在使用 python 2.7 windows 8.1

【问题讨论】:

  • 我发现这里没有提到一个名为 name 的命名参数 effbot.org/tkinterbook/entry.htm
  • 要从 Entry 获取文本,请使用 get()
  • 要绑定 StringVar 使用 e = Entry(master, textvariable=v) 其中 v 是 StringVar,master 是 Tkinter 实例。
  • 当您在问题中包含错误消息时,至少要指出它出现在哪一行——或者更好的是,包含整个回溯。
  • 噢该死的,谢谢伙计

标签: python user-interface tkinter widget tkinter-entry


【解决方案1】:

Entry 类构造函数没有名为name1 的关键字参数,您可以将StringVar 实例传递给textvariable 关键字参数,并通过在该StringVar 实例上调用get() 方法来检索文本。或者,您可以只调用 Entry 实例本身的 get() 方法。

例子:

var = StringVar()
entry = Entry(root, textvariable=var)
entry.pack()

var.set('default value')
input = var.get()

【讨论】:

  • 你应该提到OP应该使用textvariable绑定一个StringVar
【解决方案2】:
    from Tkinter import *
root = Tk()
ticker1 = StringVar()
ticker2 = StringVar()
root.title("Choose Companies")
Label(root,
          text = "Company No. 1",
          fg = "black",
          font ="Helvetica 16 italic").pack()
Entry(root,textvariable = ticker1 ).pack()
Label(root,
          text = "Company No. 2",
          fg = "black",
          font ="Helvetica 16 italic").pack()
Entry(root,textvariable = ticker2).pack()
root.mainloop()

老兄,将条目分配给 namename1 是个坏主意。相反,您需要添加名为“textvariable”的关键字参数,它可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多