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