我一直试图将它作为单个字符串存储,更不用说将它附加到列表中了,通过为它创建一个名为" Whatisthisthing"的变量,但它不起作用。另外,你知道为什么我不能使用" Whatisthisthing"用定义Showoncanvas替换Entry.get()?
import Tkinter
import random
master = Tkinter.Tk()
Entry = Tkinter.Entry()
Entry.pack()
Whatisthisthing = Entry.get()
Canvas = Tkinter.Canvas()
Canvas.pack()
def Showoncanvas(event):
Canvas.create_text(random.randint(10,100), random.randint(10,100), anchor = "center", text=Entry.get())
Entry.bind("<Return>", Showoncanvas)
print Whatisthisthing
master.mainloop()
答案 0 :(得分:1)
条目小部件具有textvariable
选项,其中存储当前文本/内容。如果您使用StringVar
作为textvariable,则内容会自动与此变量同步,并且可以使用StringVar的.get()
方法读取。
由于我的系统上没有安装Python 2.7,因此我将您的代码转换为Python 3并使用了提到的StringVar
及其.get()
方法:
#!/usr/bin/env python3
# coding: utf-8
import tkinter
import random
master = tkinter.Tk()
Whatisthisthing = tkinter.StringVar()
Entry = tkinter.Entry(textvariable=Whatisthisthing)
Entry.pack()
Canvas = tkinter.Canvas()
Canvas.pack()
def Showoncanvas(event):
Canvas.create_text(random.randint(10,100), random.randint(10,100), anchor="center", text=Whatisthisthing.get())
Entry.bind("<Return>", Showoncanvas)
print(Whatisthisthing.get())
master.mainloop()
Python 2和Python 3之间的唯一区别应该是:
Tkinter
- &gt; tkinter
print
- &gt; print()