为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复 Python 中的“TypeError: MOVE() 需要 0 个位置参数

如何修复 Python 中的“TypeError: MOVE() 需要 0 个位置参数

喵喔喔 2021-10-10 16:28:49
尝试基于 x 和 y 坐标制作一个简单的绘图程序,我正在使用一个函数在一次调用中绘制和修改坐标,而没有实际使用全局变量为函数本身赋予 valuea 以供函数修改,但它仍然看起来好像我已经给了它实际的直接输入。在以前的版本中,我通过使用一个类来记住各个类的悬挂坐标和函数来进行绘图,但在这种情况下,输入方法略有不同,因为我使用的是按钮的缩放小部件而不是按钮和正如我之前提到的,我确实尝试在两个程序中使用全局变量,但在其中任何一个程序中都不起作用。from tkinter import *win=Tk()win.title("Etch a Schetch")win.configure(background="grey")win.configure(bd=5)global xaxa=0global yaya=0def MOVE():    tabla.create_line(xa,ya,sx.get(),sy.get())    xa=sx.get()    ya=sy.get()tabla=Canvas(win,width=300,height=300)sx=Scale(win,from_=0,to=300,length=300,orient="horizontal",command=MOVE)sy=Scale(win,from_=0,to=300,length=300,command=MOVE)ex=Button(win,text="Exit",command=exit)tabla.grid(row=1,column=1)sx.grid(row=2,column=1)sy.grid(row=1,column=2)ex.grid(row=2,column=2)win.mainloop()如果它可以工作,它会有点像蚀刻草图。
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

我实际上刚刚意识到问题是什么,引用首先发表评论的 mkiever 但我不明白,直到我对“Scale”和正在调用的命令之间的交互进行了一些单独的测试。简而言之,更容易理解被“Scale”调用的函数,因为它的命令会自动将刻度的值作为函数的输入,作为一个结果,当我定义时,我只需要在括号中声明一个变量函数,但不需要括号或输入变量来从尺度向它提供输入。


例子:


from tkinter import *

import time


win=Tk()


def P(a):

    print(a)


sx=Scale(win,from_=0,to=300,length=300,orient="horizontal",command=P)

sx.pack()


win.mainloop()

仍然需要对代码进行一些修改,但是如果不出现那个讨厌的错误,它会容易得多。


谢谢大家的建议。


查看完整回答
反对 回复 2021-10-10
  • 1 回答
  • 0 关注
  • 213 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号