본문 바로가기

Language/Python

[wxPython] wx.ToolBar 만들기

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

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


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



[wxPython] wx.ToolBar 만들기



#!/usr/bin/python
# toolbar.py

import wx

class MyToolBar(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(350, 250))

        # vbox(컨트롤 그룹 박스) 생성 : 수직
        vbox = wx.BoxSizer(wx.VERTICAL)
        # ToolBar 생성(가로형, 테두리 없음)
        toolbar = wx.ToolBar(self, -1, style=wx.TB_HORIZONTAL | wx.NO_BORDER)
        # ToolBar 이미지 버튼 추가 1~3
        toolbar.AddSimpleTool(1, wx.Image('icons/stock_new.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'New', '')
        toolbar.AddSimpleTool(2, wx.Image('icons/stock_open.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Open', '')
        toolbar.AddSimpleTool(3, wx.Image('icons/stock_save.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Save', '')
        # ToolBar 구분선 추가
        toolbar.AddSeparator()
        # ToolBar 이미지 버튼 추가 4
        toolbar.AddSimpleTool(4, wx.Image('icons/stock_exit.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Exit', '')
        # Toolbar의 Bitmap 사이즈를 설정한다. (가로,세로 : 24)
        tsize = (24, 24)
        toolbar.SetToolBitmapSize(tsize)
        # vbox에 toolbar를 추가한다.
        vbox.Add(toolbar, 0,wx.EXPAND)
        # ToolBar 추가 갱신
        toolbar.Realize()        
        self.SetSizer(vbox)
        # 상태바 생성
        self.statusbar = self.CreateStatusBar()
        # frame 중앙정렬
        self.Center()
        # Toolbar 버튼과 이벤트 함수를 연결한다.
        self.Bind(wx.EVT_TOOL, self.OnNew, id=1)
        self.Bind(wx.EVT_TOOL, self.OnOpen, id=2)
        self.Bind(wx.EVT_TOOL, self.OnSave, id=3)
        self.Bind(wx.EVT_TOOL, self.OnExit, id=4)


    # New toolbar 이벤트 함수

    def OnNew(self, event):
        self.statusbar.SetStatusText('New Command')

    # Open toolbar 이벤트 함수
    def OnOpen(self, event):
        self.statusbar.SetStatusText('Open Command')

    # Save toolbar 이벤트 함수
    def OnSave(self, event):
        self.statusbar.SetStatusText('Save Command')

    # Exit toolbar 이벤트 함수
    def OnExit(self, event):
        self.Close()


class MyApp(wx.App):
    def OnInit(self):
        # Toolbar를 가진 frame 생성
        frame = MyToolBar(None, -1, 'toolbar.py')
        frame.Show(True)
        return True

app = wx.App()
mainapp = MyApp(app)
app.MainLoop()

[실행 결과]