Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 Tkinter使用GUI尝试简单的数学_Python_User Interface_Tkinter - Fatal编程技术网

Python Tkinter使用GUI尝试简单的数学

Python Tkinter使用GUI尝试简单的数学,python,user-interface,tkinter,Python,User Interface,Tkinter,尝试用python和tkinter制作一个非常基本的加法计算器。这给了我一个错误: btresult = Button(window, text = "Compute Sum", command = self.result).grid(row = 4, column = 2, sticky = E) ^ SyntaxError: invalid syntax 我不知道如何连接这个 from tkinter import * class addCalculator

尝试用python和tkinter制作一个非常基本的加法计算器。这给了我一个错误:

    btresult = Button(window, text = "Compute Sum", command = self.result).grid(row = 4, column = 2, sticky = E)
           ^
SyntaxError: invalid syntax
我不知道如何连接这个

from tkinter import *

class addCalculator:
    def __init__(self):
        window = Tk()
        window.title("Add Calculator")

        Label(window, text = "First Number: ").grid(row = 1, column = 1, sticky = W)
        Label(window, text = "Second Number: ").grid(row = 2, column = 1, sticky = W)

        self.number1Var = StringVar()
        Entry(window, textvariable = self.number1Var, justify = RIGHT).grid(row = 1, column = 2)

        self.number2Var = StringVar()
        Entry(window, textvariable = self.number2Var, justify = RIGHT).grid(row = 2, column = 2)

        self.resultVar = StringVar()
        lblresult = Label(window, textvariable = self.result.grid(row = 3, column = 2, sticky = E)

        btresult = Button(window, text = "Compute Sum", command = self.result).grid(row = 4, column = 2, sticky = E)

        def result(self):
            resultVar = self.resultVar.set(eval(self.number1Var.get()) + eval(self.number2Var.get()))
            return resultVar

        window.mainloop()

addCalculator()

在上一行(
lblresult=…
),您忘记关闭已打开的括号。Python将这一行(该行和下一行,
btresult=…
)解释为一整行代码,但显然这不能与您的代码一起使用,因此上一行(
lblresult=…
)上的
SyntaxError

)忘记关闭打开的括号。Python将这一行(这一行和下一行,
btresult=…
)解释为一整行代码,但显然这不能与您的代码一起工作,因此
语法错误

我用自己的方式解决了这个问题。我试图忠实于最初的问题,但代码需要大量清理。有很多零碎的东西需要修复,但我认为主要的问题是将整数传递给函数的方法。我还将原来的lblresult从标签更改为条目小部件。我对Python还是新手,但越来越好。我在寻找类似答案的同时发现了这个问题,解决了这个问题也解决了我的问题。谢谢代码如下:

from Tkinter import *

class addCalculator:
    def __init__(self):
        window = Tk()
        window.title("Add Calculator")

        def result(z1,z2):
            biz=z1+z2
            lblresult.delete(0,END)
            lblresult.insert(0,biz)
            return

        Label1 = Label(window, text = "First Number: ").grid(row = 1, column = 1, sticky = W)
        Label2 = Label(window, text = "Second Number: ").grid(row = 2, column = 1, sticky = W)

        self.number1Var = IntVar()
        Entry1 = Entry(window, textvariable = self.number1Var, justify = RIGHT).grid(row = 1, column = 2)

        self.number2Var = IntVar()
        Entry2 = Entry(window, textvariable = self.number2Var, justify = RIGHT).grid(row = 2, column = 2)

        Label3 = Label(window, text = "Result: ").grid(row = 3, column = 1, sticky = W)

        lblresult = Entry(window, justify = RIGHT)
        lblresult.grid(row = 3, column = 2, sticky = E)

        btresult = Button(window,text="Compute Sum",command=lambda:result(self.number1Var.get(),self.number2Var.get()))
        btresult.grid(row = 4, column = 2, sticky = E)

        window.mainloop()

addCalculator()

我用自己的方式解决了这个问题。我试图忠实于最初的问题,但代码需要大量清理。有很多零碎的东西需要修复,但我认为主要的问题是将整数传递给函数的方法。我还将原来的lblresult从标签更改为条目小部件。我对Python还是新手,但越来越好。我在寻找类似答案的同时发现了这个问题,解决了这个问题也解决了我的问题。谢谢代码如下:

from Tkinter import *

class addCalculator:
    def __init__(self):
        window = Tk()
        window.title("Add Calculator")

        def result(z1,z2):
            biz=z1+z2
            lblresult.delete(0,END)
            lblresult.insert(0,biz)
            return

        Label1 = Label(window, text = "First Number: ").grid(row = 1, column = 1, sticky = W)
        Label2 = Label(window, text = "Second Number: ").grid(row = 2, column = 1, sticky = W)

        self.number1Var = IntVar()
        Entry1 = Entry(window, textvariable = self.number1Var, justify = RIGHT).grid(row = 1, column = 2)

        self.number2Var = IntVar()
        Entry2 = Entry(window, textvariable = self.number2Var, justify = RIGHT).grid(row = 2, column = 2)

        Label3 = Label(window, text = "Result: ").grid(row = 3, column = 1, sticky = W)

        lblresult = Entry(window, justify = RIGHT)
        lblresult.grid(row = 3, column = 2, sticky = E)

        btresult = Button(window,text="Compute Sum",command=lambda:result(self.number1Var.get(),self.number2Var.get()))
        btresult.grid(row = 4, column = 2, sticky = E)

        window.mainloop()

addCalculator()

回答得好。一般来说,每当你在一行上得到一个不可能无效的
SyntaxError
时,请检查上面是否有任何未闭合的括号、括号、大括号、三重引号等。因此,在稍微清理一下之后,我仍然看不到结果标签(字段),也不会用结果填充它。@ohvonbraun我对Tkinter没有经验,所以我帮不了你。还有其他错误吗?@ohvonbraun您发布的代码有很多问题和错误,即使在修复关闭paren问题后也无法运行。如果您已经清理了足够多的代码以使其运行,并且您仍然有问题,请发布更新的代码。我可以帮你清理,但是你和我会使用不同的代码,这将很难帮助你。回答得好。一般来说,每当你在一行上得到一个不可能无效的
SyntaxError
时,请检查上面是否有任何未闭合的括号、括号、大括号、三重引号等。因此,在稍微清理一下之后,我仍然看不到结果标签(字段),也不会用结果填充它。@ohvonbraun我对Tkinter没有经验,所以我帮不了你。还有其他错误吗?@ohvonbraun您发布的代码有很多问题和错误,即使在修复关闭paren问题后也无法运行。如果您已经清理了足够多的代码以使其运行,并且您仍然有问题,请发布更新的代码。我可以帮你清理,但是你和我会使用不同的代码,这将很难帮助你。是的,所以它仍然不起作用。结果不是打印到屏幕上。我试过几种不同的图坦卡门,但当我为这个简单的练习修改它们时,我无法得到任何打印结果。我的函数或被调用的变量有问题。我想。创建类的实例
addCalculator
(例如,myinstance=addCalculator()
。取消输入您的
result`function.Put
window.mainloop())
在一个函数中,然后用instanceYeah调用该函数,这样它仍然不起作用。结果没有打印到屏幕上。我尝试了几种不同的TUT,但在这个简单的练习中修改它们时,我无法得到任何打印结果。我的函数或调用的变量都有问题。我想。在中创建一个类的状态
addCalculator
(例如,myinstance=addCalculator()
。取消输入您的
result`function。将
window.mainloop()
放入函数中,然后用实例调用该函数