稻兜 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 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题