カーソル変更


某所で「カーソルを文字列に変更するにはどうすればいいですか?」

という質問があったので10分で書いてみました。

カーソルを「卵」に変更します。

import wx

app = wx.PySimpleApp()

bmp = wx.EmptyBitmap(64, 64)
dc = wx.MemoryDC()
dc.SelectObject(bmp)
dc.SetBackground(wx.WHITE_BRUSH)
dc.Clear()
f = dc.GetFont()
f.SetPointSize(32)
dc.SetFont(f)
dc.DrawText(u"卵", 0, 0)

im  = wx.ImageFromBitmap(bmp)
cur = wx.CursorFromImage(im)

f &#061; wx.Frame(None) # <&#061; カーソルを変えるウィンドウ
f.SetCursor(cur)
f.Show()

wx.SetCursor(cur) # <&#061; 働かない?

app.MainLoop()



ちなみにドキュメントには

wxSetCursor

void wxSetCursor(const wxCursor& cursor)

Globally sets the cursor; only has an effect on Windows, Mac and GTK+. You should call this function with wxNullCursor to restore the system cursor.


と書いてあるのに、なぜか上のコードでは特定ウィンドウ上でしかカーソルを変えられませんでした。