我正在用Python构建一个绘图工具。应用程序在没有大小的情况下工作,但当我使用大小时它不工作。我需要做更大的正方形,我需要把列表上的所有值相乘,正如你所看到的。看起来一切正常,但代码不起作用,我遇到以下错误:
ctypes.ArgumentError: argument 2: <class 'TypeError'>: Don't know how to convert parameter 2
import win32api
import time
import ctypes
import mouse
sqx = [10,0,-10,0]
sqy = [0,10,0,-10]
size = 0.5
def mover(x,y):
ctypes.windll.user32.mouse_event(0x0001,x,y,0,0)
while True:
for i in range(len(sqx)):
if win32api.GetAsyncKeyState(0x01) < 0:
newsqx = sqx[i] * size
newsqy = sqy[i] * size
mover(newsqx,newsqy)
以下是终端输出:
根据win32文档,看起来
mouse_event
的参数应该是整数:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event
原始的
sqx
和sqy
值是整数,但将它们乘以float
就将它们变成了float
,因此这可能是错误的根源。我可能建议让mover
函数将x
和y
转换为int
,这样它就可以接受调用者的float
或int
:相关问题 更多 >
编程相关推荐