【问题标题】:Can't print out entry in tkinter python 3.6无法打印出 tkinter python 3.6 中的条目
【发布时间】:2018-09-12 19:06:07
【问题描述】:

当我在条目中输入一个值时,它应该会打印到控制台,但是,它会打印一个新行而不是其他任何内容。我是 tkinter 的新手,目前正在测试。

def main(self, event= None):
    v = StringVar()
    entry1 = Entry(width = 20, textvariable = v)
    entry1.bind("<Return>", self.main)
    entry1.focus()
    self.removeWidgits()
    homeLabel.place_forget()
    exitButton.pack(side = BOTTOM)
    entry1.place(x = 0, y = 0)
    v = entry1.get()
    print(v)

【问题讨论】:

  • 您在创建小部件大约一毫秒后调用entry1.get()。您必须能够快速键入 really 才能在 print 语句之前输入内容。
  • 我可以在这里看到几个问题。看来您正在使用类方法。也就是说,您正在尝试创建一个 Entry 字段而不传递其父容器。相反,您很可能应该在 __init__ 方法中的方法之外创建输入字段,然后使用打印语句获取输入信息。
  • 您提供的代码不足以测试您的代码。如果没有更多上下文,您提供的内容没有多大意义。我永远不会构建一个看起来像这样的方法,因为它效率不高且相对冗余。

标签: python python-3.x tkinter


【解决方案1】:

从您的代码来看,您似乎想在按下Return 时在条目中打印文本。这是您的代码副本,可在按 Enter 时打印文本。

from tkinter import *

root = Tk()
v = StringVar()
entry1 = Entry(width = 20, textvariable = v)
entry1.bind("<Return>", lambda _:print(entry1.get()))
entry1.focus()
entry1.place(x = 0, y = 0)

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 2022-08-02
    • 1970-01-01
    相关资源
    最近更新 更多