任何人都可以帮助我吗?
from Tkinter import *
import easygui
def whenoneclick():
#How do I insert "1" into the Entry Label (inputbox)?
def mainfunc():
inputvalue = inputvar.get()
outputvalue = eval(inputvalue)
easygui.msgbox("The answer is: " + str(outputvalue), title="Answer")
maingui = Tk()
inputvar = StringVar()
inputbox = Entry(maingui, textvariable=inputvar).place(x=10,y=10)
inputbut = Button(text="=",command=mainfunc).place(x=10,y=40)
button = Button(text="1",command=whenoneclick).pack()
请回复。
答案 0 :(得分:2)
嗯,首先,您需要让inputbox
引用条目框本身,而不是place
方法的返回值(None
)。这可以通过如下代码来完成:
inputbox = Entry(maingui, textvariable=inputvar)
inputbox.place(x=10,y=10)
完成此操作后,您可以使用输入框的insert
方法。我写了一个简单的脚本来演示:
from Tkinter import *
root = Tk()
def click():
inputbox.insert(0, "1")
inputbox = Entry()
inputbox.place(x=10,y=10)
Button(text="Click",command=click).place(x=10,y=40)
root.mainloop()
如果要删除文本,可以使用delete
方法:
inputbox.delete(0, END)
答案 1 :(得分:0)
如果您根据代码使用StringVar,则设置值
def whenoneclick():
inputvar.set("1") ## "1" not 1 because it is a StringVar
请注意,您在此处重新定义,但它是mainfunc函数的本地函数
def mainfunc():
inputvalue = inputvar.get()
此外,程序中没有主循环,“outputvalue”是函数的本地函数,因此您将在easygui.msgbox上出错,或者缩进该行以使其成为函数的一部分。