0

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()
4

2 に答える 2

3

前の行 ( lblresult = ...) で、開き括弧を閉じるのを忘れていました。Python はこれ (その行と次の行の両方btresult = ...) を 1 行のコード全体として解釈しますが、明らかにこれはあなたのコードでは機能しません。SyntaxError

于 2013-09-20T00:48:11.230 に答える
0

私はこの問題を独自の方法で解決しました。私は元の質問に忠実であり続けようとしましたが、コードには多くのクリーンアップが必要でした. 修正すべき点はたくさんありましたが、主な問題は整数を関数に渡す方法にあったと思います。また、元の lblresult をラベルから Entry ウィジェットに変更しました。私はまだ 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()
于 2016-04-19T16:57:45.603 に答える