2019年1月16日水曜日

wxPython 押したボタンによってカーソルの形を変えてみました。





動作

wxPython 押したボタンによってカーソルの形を変えてみました。


参考サイト

wxPython - BusyCursorの開始と終了
https://stackoverrun.com/ja/q/10246721


カーソルの形

wx.StockCursor
https://wxpython.org/Phoenix/docs/html/wx.StockCursor.enumeration.html
StockCursor列挙体は以下の値を提供します。

説明    値
wx.CURSOR_NONE 
wx.CURSOR_ARROW    標準の矢印カーソル。
wx.CURSOR_RIGHT_ARROW    右向きの標準矢印カーソル。
wx.CURSOR_BULLSEYE    ブルズアイカーソル。
wx.CURSOR_CHAR    長方形の文字カーソル。
wx.CURSOR_CROSS    十字カーソル。
wx.CURSOR_HAND    ハンドカーソル
wx.CURSOR_IBEAM    Iビームカーソル(垂直線)。
wx.CURSOR_LEFT_BUTTON    左ボタンが押された状態のマウスを表します。
wx.CURSOR_MAGNIFIER    拡大鏡アイコン。
wx.CURSOR_MIDDLE_BUTTON    中央のボタンが押された状態のマウスを表します。
wx.CURSOR_NO_ENTRY    無記入記号カーソル。
wx.CURSOR_PAINT_BRUSH    絵筆カーソル。
wx.CURSOR_PENCIL    鉛筆のカーソル
wx.CURSOR_POINT_LEFT    左向きのカーソル。
wx.CURSOR_POINT_RIGHT    右向きのカーソル。
wx.CURSOR_QUESTION_ARROW    矢印と疑問符
wx.CURSOR_RIGHT_BUTTON    右ボタンが押された状態のマウスを表します。
wx.CURSOR_SIZENESW    NE-SW指すサイズ変更カーソル。
wx.CURSOR_SIZENS    NS指すサイズ変更カーソル。
wx.CURSOR_SIZENWSE    NW-SE指すサイズ変更カーソル。
wx.CURSOR_SIZEWE    WE指すサイズ変更カーソル。
wx.CURSOR_SIZING    一般的なサイズ変更カーソル。
wx.CURSOR_SPRAYCAN    スプレースキャンカーソル。
wx.CURSOR_WAIT    待機カーソル
wx.CURSOR_WATCH    ウォッチカーソル
wx.CURSOR_BLANK    透明カーソル
wx.CURSOR_DEFAULT    標準X11カーソル(wxGTKのみ)
wx.CURSOR_COPY_ARROW    MacOSテーマプラス矢印(Macのみ)。
wx.CURSOR_ARROWWAIT    標準の矢印付きの待機カーソル。
wx.CURSOR_MAX 


以下のサイトでカーソルの形も自作できるような?

wx.Cursor

https://wxpython.org/Phoenix/docs/html/wx.Cursor.html



全コード

E:\MyBackups\goolgedrive\myprg_main\python_my_prg\wxpython\dc\お絵かき3\setCursorMy.py


# coding: UTF-8
import wx

class TestFrame(wx.Frame):
    #def __init__(self, parent):
    def __init__(self, parent, *args ,**kargs):
        frame = wx.Frame.__init__(self, parent, *args, **kargs)
        #wx.Frame.__init__(self, None)
        self.SetBackgroundColour("#FFFFFF")      #白色
        #sizer 上から順に縦方向に並べる
        self.rootSizer = wx.BoxSizer(wx.VERTICAL)

        # Spacer 隙間を作るようだ。VERTICALなので最初の80はあんまり関係ないような
        self.rootSizer.Add((80, 80))
        self.buttonActive = wx.Button(self,-1,"Activate",size=(100,100))
        #ボタンをおしたら
        self.buttonActive.Bind(wx.EVT_BUTTON, self.OnActivate)
        #引数(対象物、ID、配置)と思う。ALIGN_CENTER:中央によせる
        #https://qiita.com/Kenta-Han/items/fae6f5f054bfe91c8a5f
        self.rootSizer.Add(self.buttonActive,0,wx.ALIGN_CENTER)

        self.rootSizer.Add((80,80)) # Spacer
        self.buttonDisable = wx.Button(self,-1, "Disable", size=(100,100))
        self.buttonDisable.Bind(wx.EVT_BUTTON, self.OnDisabled)
        self.rootSizer.Add(self.buttonDisable,0,wx.ALIGN_CENTER)

        self.SetSizer(self.rootSizer)

    #ボタンをおしたら
    def OnActivate(self,evt):
        print "Activate"
        #カーソルの形が待つのになる
        self.SetCursor(wx.StockCursor(wx.CURSOR_WAIT))

    #ボタンをおしたら
    def OnDisabled(self, evt):
        print "Disabled"
        #カーソルの形が通常の矢印になる
        self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))


if __name__ == '__main__':
    app = wx.App(None)
    #元コードではbuttonDisableのボタンがみえないのでサイズを大きくする
    frame = TestFrame(None, size=(300, 500))
    frame.Show()
    app.MainLoop()


0 件のコメント:

コメントを投稿

About

参加ユーザー

連絡フォーム

名前

メール *

メッセージ *

ブログ アーカイブ

ページ

Featured Posts