Python-如何打印输入文本tkinter?

Python-如何打印输入文本tkinter?,python,tkinter,printing,tkinter-entry,Python,Tkinter,Printing,Tkinter Entry,在学习Python的同时,我正在编写一个基本的Q&a程序,我正在摆弄tkinter的函数。我试图打印用户输入,但它只打印一个空行。这是我的密码: from tkinter import * from tkinter import ttk def response(): value = str(var.get()) print(value) root = Tk() root.title("Bot") mainframe = ttk.Frame(root, padding = "

在学习Python的同时,我正在编写一个基本的Q&a程序,我正在摆弄tkinter的函数。我试图打印用户输入,但它只打印一个空行。这是我的密码:

from tkinter import *
from tkinter import ttk
def response():
    value = str(var.get())
    print(value)

root = Tk()
root.title("Bot")

mainframe = ttk.Frame(root, padding = "5 5 15 15")
mainframe.grid(column=0, row=0), sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)

var = StringVar()

input_entry = ttk.Entry(mainframe, width=20, textvariable=var)
input_entry.grid(column=5, row=5, sticky = (W, E))
input_entry.pack()

ttk.Label(mainframe, textvariable=response).grid(column=2, row=2, sticky=(W, E)) 
ttk.Button(mainframe, text="Ask away!", command=response).grid(column=3,
row=3, sticky=W)

root.mainloop()

要获取条目文本,可以使用
input\u entry.get()

您可以查看ttk条目小部件的文档

Pythonista做对了。 第一个问题是您试图在条目小部件中同时使用pack和grid。 使用网格更合适。 第二个问题是在网格方法的错误位置添加了括号。
我看到的第三个问题是,当您创建标签和/或按钮时,您应该给出 标签/按钮会显示一个名称,就像您使用entry小部件一样。这样你就不会遇到麻烦了 如果要更改标签或按钮的名称,请稍后解决问题。虽然您这样做的方式可以工作并且代码更少,但从长远来看,结果会让您不那么头疼。下面是一个我认为您应该对脚本进行如下建模的示例:

 from tkinter import *

 root = Tk()
 root.title("Title")
 root.geometry('300x100')


 def clear_text(self):
     txtE.delete(0, 'end')


 def new_label(event=None):
     Entree = txtE.get()
     lbl1['text'] = 'Hello There ' + Entree.title()
     clear_text(txtE)


 lbl1 = Label(root, text='Enter Your Name:)
 lbl1.pack()
 txtE = Entry(root)
 txtE.focus()
 txtE.pack()

 Button(root, text='Enter', command=new_label).pack()
 Button(root, text='Quit', command=root.destroy).pack(side=BOTTOM)
 root.bind('<Return>', new_label)
 root.mainloop()
从tkinter导入*
root=Tk()
根标题(“标题”)
根几何体('300x100')
def清除文本(自身):
txtE.delete(0,“结束”)
def新_标签(事件=无):
entre=txtE.get()
lbl1['text']=“你好”+entre.title()
清除文本(txtE)
lbl1=标签(root,text='输入您的姓名:)
lbl1.pack()
txtE=条目(根)
txtE.focus()
txtE.pack()
按钮(root,text='Enter',command=new_label).pack()
按钮(root,text='Quit',command=root.destroy).pack(side=BOTTOM)
root.bind(“”,新的\u标签)
root.mainloop()

你是救命恩人,杀手^_^这是一个有很好记录的问题。在询问之前考虑一下搜索。