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
User interface 计算器图形用户界面&x27;问题';_User Interface - Fatal编程技术网

User interface 计算器图形用户界面&x27;问题';

User interface 计算器图形用户界面&x27;问题';,user-interface,User Interface,这是我的计算器GUI,当我运行它时,我不断得到这个错误代码 Tkinter回调中的异常 from tkinter import* window = Tk() window.title("T Main") top_row = Frame(window) top_row.grid(row=0, column=0, columnspan=2, sticky = N) display = Entry(top_row, width=45, bg = "light green") display.gr

这是我的计算器GUI,当我运行它时,我不断得到这个错误代码 Tkinter回调中的异常

from tkinter import*

window = Tk()
window.title("T Main")

top_row = Frame(window)
top_row.grid(row=0, column=0, columnspan=2, sticky = N)

display = Entry(top_row, width=45, bg = "light green")
display.grid()

def click():
    display.insert(END, "1")

Button(window, text="1", width=5, command=click).grid(row=1, column=0)

num_pad = Frame(window)
num_pad.grid(row=1, column=0, sticky=W)

num_pad_list = [
    '7','8','9',
    '4','5','6',
    '1','2','3',
    '0','.','=',
    ]

r = 0
c = 0
for buttontext in num_pad_list:
    Button(num_pad, text=buttontext, width=5, command=click).grid(row=r, column=c)
    c = c+1
    if c > 2:
        c = 0
        r = r+1


operator = Frame(window)
operator.grid(row=1, column=1, sticky=E)

operator_list = [
    '+','-',
    '*','/',
    '(',')',
    'C',
    ]

r = 0
c = 0
for buttontext in operator_list:
    Button(operator, text=buttontext, width=5, command=click).grid(row=r, column=c)
    c = c+1
    if c > 1:
        c = 0
        r = r+1



def click(key):
      if key=="=":
            try:
                  result = str(eval(display.get()))[0:10]
                  display.insert = (END, "=" + result)
            except:
                  display.insert = (END, "----> ERROR" )


      elif key == "C":
          display.delete(0, END)

      else:
          display.insert(END, key)




r = 0
c = 0
for buttontext in num_pad_list:
    def cmd(x=buttontext):
        click(x)
    Button(num_pad, text=buttontext, width=5, command=cmd).grid(row=r, column=c)
    c = c+1
    if c > 2:
        c = 0
        r = r+1


r = 0
c = 0
for buttontext in operator_list:
    def cmd(x=buttontext):
        click(x)
    Button(operator, text=buttontext, width=5, command=cmd).grid(row=r, column=c)
    c = c+1
    if c > 1:
        c = 0
        r = r+1





window.mainloop()
在这里,您可以设置
display.insert
(END,“=”+result)
,这是一个元组

然后,稍后尝试将其作为函数调用

try:
    result = str(eval(display.get()))[0:10]
    display.insert = (END, "=" + result)
except:
    display.insert = (END, "----> ERROR" )
这将导致
TypeError:“tuple”对象不可调用
,因为您正试图“调用”该tuple

你可能是有意的

display.insert(END, key)

谢谢,抱歉@Tim Castelijns
display.insert(END, key)
try:
    result = str(eval(display.get()))[0:10]
    display.insert(END, "=" + result)
except:
    display.insert(END, "----> ERROR" )