猪猪虾 发表于 2020-4-11 15:49:04

tkinter,无法进行计算,但不报错

本帖最后由 猪猪虾 于 2020-4-11 16:41 编辑

报错:TypeError: test_1() missing 1 required positional argument: 'content'

#简单计算器
from tkinter import *

root = Tk()

v1=StringVar()
v2=StringVar()


def test(content):
    if content.isdigit() and len(code)==2:
       me=e1.get()+e2.get()
       w1= Message(root, text="第一个数+第二个数=")
       w1.grid(row=2,column=0,padx=0,pady=0)
       w2= Message(root, text=me, width=100)
       w2.grid(row=3,column=0,padx=20,pady=20)
       return True
    else:
      print("错误!")
      print(content)
      return False

group=LabelFrame(root,text="简易计算器",padx=10,pady=10)
group.grid(padx=10, pady=10)

Label(group,text="第一个数:").grid(row=0,column=0)
Label(group,text="第二个数:").grid(row=1,column=0)

testCMD = root.register(test)
e1 = Entry(group,textvariable=v1, validate="focusout", validatecommand=(testCMD, '%P'))
e2 = Entry(group,textvariable=v2,validate="focusout", validatecommand=(testCMD, '%P'))
e1.grid(row=0,column=1)
e2.grid(row=1,column=1)

mainloop()

永恒的蓝色梦想 发表于 2020-4-11 16:33:27

错误提示不够明白吗?
39行那里是不传参数的,但是你的test_1需要参数

猪猪虾 发表于 2020-4-11 16:36:03

永恒的蓝色梦想 发表于 2020-4-11 16:33
错误提示不够明白吗?
39行那里是不传参数的,但是你的test_1需要参数

对,我一下子没转过来,我想问的是,Entry动态判断输入并传递相应的值,现在我两个输入框的值要传递到同一个函数进行计算,要怎没办

永恒的蓝色梦想 发表于 2020-4-11 16:38:23

猪猪虾 发表于 2020-4-11 16:36
对,我一下子没转过来,我想问的是,Entry动态判断输入并传递相应的值,现在我两个输入框的值要传递到同 ...

14行的 me_1 是个什么

猪猪虾 发表于 2020-4-11 16:40:40

永恒的蓝色梦想 发表于 2020-4-11 16:38
14行的 me_1 是个什么

那个删掉就好,我之前尝试定义两个函数来分别接收,然后再进行计算,但是调用def test(content):必须往里面传参数,我就不知道咋弄了

永恒的蓝色梦想 发表于 2020-4-11 16:43:27

猪猪虾 发表于 2020-4-11 16:40
那个删掉就好,我之前尝试定义两个函数来分别接收,然后再进行计算,但是调用def test(content):必须往里 ...

本来的content是个什么呢

猪猪虾 发表于 2020-4-11 16:56:22

永恒的蓝色梦想 发表于 2020-4-11 16:43
本来的content是个什么呢

'%P'

永恒的蓝色梦想 发表于 2020-4-11 17:01:58

猪猪虾 发表于 2020-4-11 16:56
'%P'

这是个啥……

猪猪虾 发表于 2020-4-11 17:04:10

永恒的蓝色梦想 发表于 2020-4-11 17:01
这是个啥……

显示当前输入框的值

猪猪虾 发表于 2020-4-11 17:04:43

永恒的蓝色梦想 发表于 2020-4-11 17:01
这是个啥……

我改出来啦,谢谢
页: [1]
查看完整版本: tkinter,无法进行计算,但不报错