2

我正在尝试在 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 上的第一个问题,哈哈。

4

0 回答 0