Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 标签小部件问题_Python_Python 2.7_User Interface_Tkinter_Tk - Fatal编程技术网

Python 标签小部件问题

Python 标签小部件问题,python,python-2.7,user-interface,tkinter,tk,Python,Python 2.7,User Interface,Tkinter,Tk,我的Tkinter项目有问题。我正在尝试创建一个简单的加法计算器,它只计算两个数字和两个数字。我在创建加法函数时遇到问题。我想创建一个显示变量“finalans”的标签,它基本上是用户在输入框小部件中输入的两位数之和的值 def Addition(): top = Toplevel() top.geometry("500x500") global finalans #First Entry e = Entry(top) e.pack()

我的Tkinter项目有问题。我正在尝试创建一个简单的加法计算器,它只计算两个数字和两个数字。我在创建加法函数时遇到问题。我想创建一个显示变量“finalans”的标签,它基本上是用户在输入框小部件中输入的两位数之和的值

def Addition():
    top = Toplevel()

    top.geometry("500x500")

    global finalans

    #First Entry

    e = Entry(top)
    e.pack()

    e.focus_set()

    #Function for finding answer
    def Answer():

        firstval = int(e.get())
        secondval = int(m.get())
        finalans = firstval + secondval

        #Final Answer
        answer = Label(top, textvariable=finalans)
        answer.pack()

    h = Label(top, text="First Numeric Value")
    h.pack()

    #Second Entry
    m = Entry(top)
    m.pack()

    m.focus_set()

    z = Label(top, text="Second Numeric Value")
    z.pack()

    add2 = Button(top, text="Submit", width=10, command=Answer)
    add2.pack()

    mainloop()

当我尝试运行程序并使用标签小部件显示答案时,标签根本不显示任何内容。控制台中甚至没有错误代码或任何东西。如何使标签小部件显示变量?

首先
finalans
必须是
StringVar()

第二次使用
finalans.set(string)
更改它

您只能创建一次
answer
标签

def Addition():
    top = Toplevel()

    top.geometry("500x500")

    global finalans

    finalans = StringVar()

    #First Entry

    e = Entry(top)
    e.pack()

    e.focus_set()

    #Function for finding answer
    def Answer():

        firstval = int(e.get())
        secondval = int(m.get())
        finalans.set( str(firstval + secondval) )

    h = Label(top, text="First Numeric Value")
    h.pack()

    #Second Entry
    m = Entry(top)
    m.pack()

    m.focus_set()

    z = Label(top, text="Second Numeric Value")
    z.pack()

    add2 = Button(top, text="Submit", width=10, command=Answer)
    add2.pack()

    #Final Answer
    answer = Label(top, textvariable=finalans)
    answer.pack()

    mainloop()

Addition()