wxPython アプリケーションでカスタム ホットスポット (つまり、ヒントの場所) を持つカスタム カーソルを作成しようとしましたが、wxPython と wxWidgets がカーソルの作成と使用をどのように処理するかについて、適切な例と説明を見つけるのに苦労しました。私の解決策は以下です。
1 に答える
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)
于 2014-08-14T21:24:28.097 に答える