我试图在wxPython应用程序中使用自定义热点(即提示位置)创建自定义光标,但是在查找关于wxPython和wxWidgets如何处理创建和使用光标的良好示例和说明时遇到了一些困难。我的解决方案如下。
我尝试创建的游标需要一个不同的“热点”(例如,提示位置)。我的第一个发现是wxPython Image可以选择设置热点的x和y坐标。但是,如果使用特定的文件类型,则wxPython的Cursor类仅使用那些热点。
从wx.Cursor初始化文档中,他们解释了...
仅当资源/图像文件中没有热点信息要加载时(例如,在wxMSW下使用BITMAP_TYPE_ICO或在wxGTK下使用BITMAP_TYPE_XPM时)才使用参数hotSpotX和hotSpotY。
为了使用自定义热点,我使用在线转换器将PNG图像转换为ICO文件。然后,我可以使用以下代码创建具有正确热点的自定义游标:
# The point (6, 28) is the location of my hotspot. This is in reference
# to the top left corner of the image.
cursor = wx.Cursor(os.path.join("path", "to", "cursor.ico"), wx.BITMAP_TYPE_ICO, 6, 28)
frame.SetCursor(cursor)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句