【发布时间】:2018-03-26 06:05:40
【问题描述】:
您好,我有一个问题。 我有我制作的这段代码正在运行:
nosum = int(round(startX * 0.9))
nosum2 = int(round(y * 0.5))
win32api.SetCursorPos((nosum,nosum2))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,nosum,nosum2,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,nosum,nosum2,0,0)
问题是我必须创建一个 int(round(var)) 因为 win32api 期望 parametere 是 int,但是为了我的使用,我需要该值是 float,我该如何实现?
【问题讨论】:
-
在内部使用浮点数,并在将它们传递给 API 时将它们舍入为整数。
-
我需要 api 来使用浮点数,因为在这种情况下我必须“单击”不是整数而是浮点数的东西。
-
这毫无意义。
-
这些数字是整数是有原因的。您可以点击第 3 个或第 4 个像素,点击第 3.5 个没有意义。
-
@Andomar Pixel number 3.5 在 90 年代中期设计 Win32 API 时是一个荒谬的想法,但 20 多年后,谁来处理物理像素?您可能正在绘制一个虚拟纹理,该纹理被馈送到 3D 合成器或其他东西,合成器看到的实际监视器的分辨率可能比窗口系统报告的分辨率高 1.67 倍,等等。所以,她可能不是一无所知,只是对旧 API 期望过高。