0

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

4

1 回答 1

0

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

他们从wx.Cursor init文档中解释...

参数 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)
于 2014-08-14T21:24:28.097 回答