본문 바로가기

Language/Python

[wxPython] 기본 Object - 커서(Cursor)

본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.

[출처] - http://pythondev.egloos.com/103042


행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다.



[wxPython] 기본 Object - 커서(Cursor)


#!/usr/bin/python
# -*- coding: cp949 -*-
# layout.py

import wx

class Cursors(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title)

        # BoxSizer 생성
        vbox = wx.BoxSizer(wx.VERTICAL)
        # GridSizer 생성 (가로, 세로, 가로여백, 세로여백)
        sizer = wx.GridSizer(3, 3, 2, 2)

        #커서 지정
        cursors = [ wx.CURSOR_ARROW, wx.CURSOR_HAND, wx.CURSOR_WATCH, wx.CURSOR_SPRAYCAN, wx.CURSOR_PENCIL,wx.CURSOR_CROSS, wx.CURSOR_QUESTION_ARROW, wx.CURSOR_POINT_LEFT, wx.CURSOR_SIZING]

        # 패널 별로 커서 지정
        for i in cursors:
            # 패널 생성
            panel = wx.Panel(self, -1, style=wx.SUNKEN_BORDER)
            panel.SetCursor(wx.StockCursor(i))
            sizer.Add(panel, flag=wx.EXPAND)


        # GridSizer를 BoxSizer에 추가함
        vbox.Add(sizer, 1, wx.EXPAND | wx.TOP, 5)
        # Frame에 BoxSizer를 셋팅
        self.SetSizer(vbox)
        self.Centre()
        self.Show()


app = wx.App()
Cursors(None, -1, 'Cursors.py')
app.MainLoop()


[실행 화면]


각 오브젝트(네모칸) 별로 마우스를 갖다 대면 마우스의 모양이 변하게 된다. (마우스 모양은 캡쳐가 불가능 했음)

각 마우스의 모양은 위 코드에서 빨간 bold 체로 해놓은 인자값에 따라 결정된다.