Python tkinter 初学GUI界面出现TclError: unknown option "-commmand"

在编写一个简单计算器的时候,出现了command错误的反馈,我改了很久一直找不到错在哪,command是Button里面的参数,但为什么回出现unknown option “-commmand”????
代码如下,希望路过的大神帮我看看TvT
出错的地方和对应的函数已经用#号标准

##一个满足基本运算(+-*/)、开方(sqrt)、求倒数(1/x)、切换正负号(±)的计算器

import tkinter, decimal, math

root = tkinter.Tk()
root.resizable(0, 0)
root.title('计算器')
vartext = tkinter.StringVar()  #只存储数字,包括负数,即字符串首位数字可能为-/+号
symbol = None
result = None
temp_sotre = []


class Entry:
    global vartext, symbol, result, temp_sotre

    def __init__(self, entry):
        self.current_input = entry

    def func_Connect(self):  ################################出错的函数###########
        temp_sotre.append(self.current_input)
        vartext.set(''.join(temp_sotre))
        print(vartext.get())

    def func_Plus_or_Minus(self):
        if vartext.get():                      
            if float(vartext.get())>0:
                temp_sotre.insert(0,'-')
                vartext.set(''.join(temp_sotre))
            elif float(vartext.get())==0:
                pass
            else:
                temp_sotre.insert(0, '+')
                vartext.set(''.join(temp_sotre))
        else:
            temp_sotre.append('-')
            vartext.set(''.join(temp_sotre))



    def func_Decimal(self):
        if temp_sotre.count('.') >= 1:
            pass
        else:
            temp_sotre.append(self.current_input)
            vartext.set(''.join(temp_sotre))

    def func_Counter(self):
        global result, symbol, temp_sotre
        if self.current_input in ['sqrt', '1/x']:
            if self.current_input == '1/x':
                if decimal.Decimal(vartext.get())==0:
                    temp_sotre=['99999999']
                    vartext.set(''.join(temp_sotre))
                else:
                    result = 1 / decimal.Decimal(vartext.get())
            else:
                if decimal.Decimal(vartext.get())<0:
                    vartext.set('wrong')  
                else:
                    result = math.sqrt(decimal.Decimal(vartext.get()))
        elif self.current_input in ['+', '-', '*', '/']:
            symbol = self.current_input
            result = decimal.Decimal(vartext.get())
            temp_sotre.clear()
            vartext.set(''.join(temp_sotre))
        else:
            if symbol == '+':
                result = result + decimal.Decimal(vartext.get())
            elif symbol == '-':
                result = result - decimal.Decimal(vartext.get())
            elif symbol == '*':
                result = result * decimal.Decimal(vartext.get())
            else:
                result = result / decimal.Decimal(vartext.get())
            temp_sotre.clear()
            vartext.set(str(result))
            symbol = None

    def func_Clear(self):
        temp_sotre.clear()
        vartext.set(''.join(temp_sotre))

    def func_BackSpace(self):
        if temp_sotre:
            temp_sotre.pop()
            vartext.set(''.join(temp_sotre))


def layout(root):
    global temp_sotre, result, symbol, vartext
    screen = tkinter.Label(root, bg='#FFFAFA', fg='#9400D3', width=25, height=2, anchor='se', textvariable=vartext)
    screen.grid(row=0, columnspan=4)

    button_1 = tkinter.Button(root, text='归零', width=5, bg='#90EE90', command=Entry('c').func_Clear)
    button_2 = tkinter.Button(root, text='退格', width=12, bg='#90EE90', command=Entry('c').func_BackSpace)
    button_3 = tkinter.Button(root, text='±', width=5, bg='#90EE90', command=Entry('c').func_Plus_or_Minus)
    button_1.grid(row=1, column=0)
    button_2.grid(row=1, column=2, columnspan=2)
    button_3.grid(row=1, column=1)

    button_4 = tkinter.Button(root, text=' 1/x ', width=5, bg='#90EE90', command=Entry('1/x').func_Counter)
    button_5 = tkinter.Button(root, text=' / ', width=5, bg='#90EE90', command=Entry('/').func_Counter)
    button_6 = tkinter.Button(root, text=' * ', width=5, bg='#90EE90', command=Entry('*').func_Counter)
    button_7 = tkinter.Button(root, text=' - ', width=5, bg='#90EE90', command=Entry('-').func_Counter)
    button_8 = tkinter.Button(root, text=' + ', width=5, bg='#90EE90', command=Entry('+').func_Counter)
    button_9 = tkinter.Button(root, text='sqrt', width=5, bg='#90EE90', command=Entry('sqrt').func_Counter)
    button_10 = tkinter.Button(root, text=' \n=\n ', width=5, bg='#90EE90', command=Entry('=').func_Counter)
    button_11 = tkinter.Button(root, text=' . ', width=5, bg='#90EE90', command=Entry('.').func_Counter)
    button_4.grid(row=2, column=0)
    button_5.grid(row=2, column=1)
    button_6.grid(row=2, column=2)
    button_7.grid(row=2, column=3)
    button_8.grid(row=3, column=3)
    button_9.grid(row=4, column=3)
    button_10.grid(row=5, column=3, rowspan=2)
    button_11.grid(row=6, column=2)
#####以下按钮全部出现类似错误,如果Entry('7').func_Connect()加上中括号能暂时显示设置好的GUI界面#############
    num_button_1 = tkinter.Button(root, text=' 7 ', width=5, bg='#FFD700', commmand=Entry('7').func_Connect)  
    num_button_2 = tkinter.Button(root, text=' 8 ', width=5, bg='#FFD700', commmand=Entry('8').func_Connect)
    num_button_3 = tkinter.Button(root, text=' 9 ', width=5, bg='#FFD700', commmand=Entry('9').func_Connect)
    num_button_4 = tkinter.Button(root, text=' 4 ', width=5, bg='#FFD700', commmand=Entry('4').func_Connect)
    num_button_5 = tkinter.Button(root, text=' 5 ', width=5, bg='#FFD700', commmand=Entry('5').func_Connect)
    num_button_6 = tkinter.Button(root, text=' 6 ', width=5, bg='#FFD700', commmand=Entry('6').func_Connect)
    num_button_7 = tkinter.Button(root, text=' 1 ', width=5, bg='#FFD700', commmand=Entry('1').func_Connect)
    num_button_8 = tkinter.Button(root, text=' 2 ', width=5, bg='#FFD700', commmand=Entry('2').func_Connect)
    num_button_9 = tkinter.Button(root, text=' 3 ', width=5, bg='#FFD700', commmand=Entry('3').func_Connect)
    num_button_10 = tkinter.Button(root, text=' 0 ', width=12, bg='#FFD700', commmand=Entry('0').func_Connect)
    num_button_1.grid(row=3, column=0)
    num_button_2.grid(row=3, column=1)
    num_button_3.grid(row=3, column=2)
    num_button_4.grid(row=4, column=0)
    num_button_5.grid(row=4, column=1)
    num_button_6.grid(row=4, column=2)
    num_button_7.grid(row=5, column=0)
    num_button_8.grid(row=5, column=1)
    num_button_9.grid(row=5, column=2)
    num_button_10.grid(row=6, column=0, columnspan=2)


layout(root)
root.mainloop()

你可能感兴趣的:(python,tkinter,gui)