カーソル変更
某所で「カーソルを文字列に変更するにはどうすればいいですか?」
という質問があったので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 = wx.Frame(None) # <= カーソルを変えるウィンドウ f.SetCursor(cur) f.Show() wx.SetCursor(cur) # <= 働かない? 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.
と書いてあるのに、なぜか上のコードでは特定ウィンドウ上でしかカーソルを変えられませんでした。