稻兜 2019-03-26 10:01 采纳率: 0%
浏览 1769

python 里 提示get()方法 缺少了一个参数, 可是get()方法是系统自带的啊,不需要参数啊,求解啊,大神

from tkinter import *
root = Tk()
frame = Frame(root)
frame.pack(padx = 10, pady = 10)
v1 = StringVar
v2 = StringVar
v3 = StringVar

def test(content):
    if content.isdigit():
        return True
    else:
        return False

testCMD = root.register(test)
Entry(frame,textvariable = v1, width = 10, validate = "key",\
      validatecommand = (testCMD,'%P')).grid(row=0,column =0)
Label(frame,text = "+").grid(row = 0, column =1)
Entry(frame,textvariable = v2, width = 10, validate = "key",\
      validatecommand = (testCMD,'%P')).grid(row=0,column =2)
Label(frame,text = "=").grid(row = 0, column =3)
Entry(frame,textvariable = v1, width = 10, validate = "key",\
      validatecommand = (testCMD,'%P')).grid(row=0,column =4)

def calc():
    result = int(v1.get()) + int(v2.get())
    v3.set(result)

Button(frame,text ="jisuanjieguo",command = calc).grid(row=1,column=2,pady=5)

mainloop()

#TODO get(), 为什么会提示少一个参数啊!!!!!!!

报错信息如下:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Ataway\AppData\Local\Programs\Python\Python37-32\lib\tkinter__init__.py", line 1705, in call
return self.func(*args)
File "D:/py/AboutExcel/Tkinter_9_Entry_5_计算器.py", line 26, in calc
result = int(v1.get()) + int(v2.get())
TypeError: get() missing 1 required positional argument: 'self'

  • 写回答

2条回答 默认 最新

  • slevenxulianjie 2019-03-26 10:12
    关注

    你这程序里有两个错误
    第1,应该这么写

    v1 = StringVar()
    v2 = StringVar()
    v3 = StringVar()
    

    v1 = StringVar()这么写表示新建一个变量;
    v1 = Stringvar表示将类型直接赋给v1

    第2,你最后一个输入库应该绑定变量V3,你输成V1了

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器