好问题。希望我的回答会有所帮助。
注意:我使用 python 3.3,所以我们需要导入 tkinter 和 Tkinter ...
在下面的程序代码行中,您需要将文本变量定义为字符串变量(这里是text1
)和= StringVar()
.
然后,当您创建条目小部件(此处为它text_entry
)时,您指示哪个变量采用用户点击按钮时输入的值(.., textvariable = text1)
。
然后,您使用该功能创建一个按钮小部件command =
(这里print_text(*args))
将打印用户键入的内容。
由于 text1 是一个列表(或者可能是元组,不确定),您需要使用属性的.get
方法来获取输入的值。这里它print(text1.get())
我还添加了一些东西:text_entry.focus()
当您运行程序时将光标放在该小部件中,这样用户就不必在输入空间中单击并root.bind('<Return>', print_text)
允许用户点击Enter打印。
from tkinter import *
from tkinter import ttk
def print_text(*args):
try:
print(text1.get())
except ValueError:
pass
root = Tk()
root.title("Little tkinter app for printing")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column = 0, row = 0, sticky = (N,W,E,S))
mainframe.columnconfigure(0, weight = 1)
mainframe.rowconfigure(0, weight = 1)
text1 = StringVar()
text_entry = ttk.Entry(mainframe, width = 20, textvariable=text1)
text_entry.grid(column = 1, row = 2, sticky = (N,W,E,S))
ttk.Button(mainframe, text = "Print!", command =
print_text(text1)).grid(column = 1, row = 3, sticky = (E))
for child in mainframe.winfo_children():
child.grid_configure(padx = 5, pady = 5)
text_entry.focus()
root.bind('<Return>', print_text)
root.mainloop()