我正在尝试在 Kivy 应用程序中创建自定义光标。我已经从将 Kivy 小部件的位置绑定到光标位置的角度来研究它。但是,这种方法非常挑剔,而且不是很干净。如果最坏的情况发生,我可以坚持使用这种方法,但我很好奇是否有一种方法可以在 Python 本身中创建自定义光标。
我查看了无数在 Python 中创建自定义光标的示例,而我发现的所有示例都需要销毁和重新创建实际的 windows 光标。我发现的每个示例都强烈反对这种方法,因为如果您在重新创建光标之前退出程序,那么它显然不会重新创建自己,并且您会留下自定义光标(可以手动重置,但我的程序是供客户使用)。我知道您可以在 Python 中将光标设置为十字准线、手形和多种光标,但我想为光标使用实际图像。
以下是销毁和重新创建光标的代码示例(建议避免使用的方法)。这段(工作)代码可以在How to change cursor image in Python的答案中找到。
hold = win32gui.LoadImage(0, 32512, win32con.IMAGE_CURSOR,
0, 0, win32con.LR_SHARED )
hsave = ctypes.windll.user32.CopyImage(hold, win32con.IMAGE_CURSOR,
0, 0, win32con.LR_COPYFROMRESOURCE)
hnew = win32gui.LoadImage(0, 'file.cur',
win32con.IMAGE_CURSOR, 0, 0, win32con.LR_LOADFROMFILE);
ctypes.windll.user32.SetSystemCursor(hcursor, 32512)
time.sleep(5)
#restore the old cursor
ctypes.windll.user32.SetSystemCursor(hsave, 32512)
我的答案是否在于对上述代码的改编?还是有更好的方法?我知道必须可以在 Python 中设置自定义光标,我只是在我去的每个来源中拉出空白。
PS 对于我的问题,我提前道歉,这是我在 Stack 上的第一个问题,哈哈。