如何在wxPython中使用自定义热点创建自定义光标?

时间:2014-08-14 21:24:28

标签: python wxpython custom-cursor

我试图在我的wxPython应用程序中创建一个带有自定义热点(即提示位置)的自定义光标,并且很难找到关于wxPython和wxWidgets如何处理创建和使用游标的好例子和解释。我的解决方案如下。

1 个答案:

答案 0 :(得分:0)

我试图创建的光标需要一个不同的"热点" (例如小费位置)。我做的第一个发现是wxPython Image可以选择设置热点的x和y坐标。但是,如果使用特定的文件类型,wxPython的Cursor类仅使用这些热点。

wx.Cursor init documentation他们解释......

  

参数hotSpotX和hotSpotY仅在资源/图像文件中没有要加载的热点信息时使用(例如,在wxMSW下使用BITMAP_TYPE_ICO或在wxGTK下使用BITMAP_TYPE_XPM时)。

为了使用自定义热点,我使用在线转换器将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)