반응형

/********************************************************************************************

-- Title : [wxPy] Menubar, Toolbar 구현

-- Reference : zetcode.com/wxpython
-- Key word : wxpython gui python 파이썬
********************************************************************************************/

  

# Just Open Window

# -*- coding: utf-8 -*-


import wx

class tFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(tFrame, self).__init__(*args, **kwargs)

self.tInitUI()

def tInitUI(self):
self.SetSize((800, 600))
self.SetTitle('Open Window')
self.Centre()
self.Show(True)

def tMain():
tApp = wx.App()
tFrame(None)
tApp.MainLoop()

if __name__ == '__main__':

    tMain()


# Add in Menubar and Menu

# -*- coding: utf-8 -*-


import wx

class tFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(tFrame, self).__init__(*args, **kwargs)

self.tOpen()
self.tMenu()

def tOpen(self):
self.SetSize((800, 600))
self.SetTitle('Add Menubar & menu')
self.Centre()
self.Show(True)

def tMenu(self):
tMenubar = wx.MenuBar()
tMenu0 = wx.Menu() # 메뉴바의 0번째 메인 메뉴(File)


# -- 메뉴바 설정 -------------------------------------------
tMenubar.Append(tMenu0, '&File')
self.SetMenuBar(tMenubar)

# -- 메뉴 설정 ---------------------------------------------
menu1 = tMenu0.Append(wx.ID_OPEN, 'Open', 'Open Files..')
menu2 = tMenu0.Append(wx.ID_EXIT, 'Exit', 'Close Window..')

self.Bind(wx.EVT_MENU, self.OnQuit, menu2)


def OnQuit(self, e):
self.Close()

def tMain():
tApp = wx.App()
tFrame(None)
tApp.MainLoop()

if __name__ == '__main__':
tMain()


# Add i Icon and Shortcut

# -*- coding: utf-8 -*-


import wx

APP_EXIT = 1

class tFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(tFrame, self).__init__(*args, **kwargs)

self.tOpen()
self.tMenu()

def tOpen(self):
self.SetSize((800, 600))
self.SetTitle('Add Icon & Shortcut')
self.Centre()
self.Show(True)

def tMenu(self):
tMenubar = wx.MenuBar()
tMenu0 = wx.Menu() # 메뉴바의 0번째 메인 메뉴(File)


# -- 메뉴바 설정 -------------------------------------------
tMenubar.Append(tMenu0, '&File')
self.SetMenuBar(tMenubar)

# -- 메뉴 설정 ---------------------------------------------
menu1 = tMenu0.Append(wx.ID_OPEN, 'Open', 'Open Files..')


menu2 = wx.MenuItem(tMenu0, APP_EXIT, '&Quit \t Ctrl+Q')

menu2.SetBitmap(wx.Bitmap('exit.png'))

tMenu0.AppendItem(menu2)


self.Bind(wx.EVT_MENU, self.OnQuit, id = APP_EXIT)

def OnQuit(self, e):
self.Close()

def tMain():
tApp = wx.App()
tFrame(None)
tApp.MainLoop()

if __name__ == '__main__':
tMain()


* exit.png : 


# Add in Submenu & Separator

# -*- coding: utf-8 -*-


import wx

class tFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(tFrame, self).__init__(*args, **kwargs)

self.tOpen()
self.tMenu()

def tOpen(self):
self.SetSize((800, 600))
self.SetTitle('Add Submenu & separator')
self.Centre()
self.Show(True)

def tMenu(self):
tMenubar = wx.MenuBar()
tMenu0 = wx.Menu() # 메뉴바의 0번째 메인 메뉴(File)

tMenu04 = wx.Menu() # 0번 메인 메뉴(File)의 4번 메뉴(Import)


# -- 메뉴바 설정 -------------------------------------------
tMenubar.Append(tMenu0, '&File')
self.SetMenuBar(tMenubar)

# -- 메뉴 설정 ---------------------------------------------
menu01 = tMenu0.Append(wx.ID_NEW, '&New')
menu02 = tMenu0.Append(wx.ID_OPEN, '&Open')
menu03 = tMenu0.Append(wx.ID_SAVE, '&Save')
tMenu0.AppendSeparator()
menu04 = tMenu0.AppendMenu(wx.ID_ANY, '&Import', tMenu04)
menu00 = tMenu0.Append(wx.ID_EXIT, '&Exit')

tMenu04.Append(wx.ID_ANY, 'Import newsfeed list...')
tMenu04.Append(wx.ID_ANY, 'Import bookmarks...')
tMenu04.Append(wx.ID_ANY, 'Import mail...')

# -- 기능 설정 ---------------------------------------------
self.Bind(wx.EVT_MENU, self.OnQuit, menu00)

def OnQuit(self, e):
self.Close()

def tMain():
tApp = wx.App()
tFrame(None)
tApp.MainLoop()

if __name__ == '__main__':
tMain()



# Add in Check Menu with Status bar  and Toolbar

# -*- coding: utf-8 -*-


import wx

class tFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(tFrame, self).__init__(*args, **kwargs)

self.tOpen()
self.tMenu()

def tOpen(self):
self.SetSize((800, 600))
self.SetTitle('Add Check menu')
self.Centre()
self.Show(True)

def tMenu(self):
tMenubar = wx.MenuBar()
tFileMenu = wx.Menu() # 메뉴바의 File 메인 메뉴
tViewMenu = wx.Menu() # 메뉴바의 View 메인 메뉴
tImpSubItem = wx.Menu() # file 메인 메뉴의 Impport 항목 서브리스트

# -- 메뉴바 설정 -----------------------------------------------
tMenubar.Append(tFileMenu, '&File')
tMenubar.Append(tViewMenu, '&View')
self.SetMenuBar(tMenubar)

# -- 메뉴항목(Item) 설정 ---------------------------------------
tNewItem = tFileMenu.Append(wx.ID_NEW, '&New')
tOpenItem = tFileMenu.Append(wx.ID_OPEN, '&Open')
tSaveItem = tFileMenu.Append(wx.ID_SAVE, '&Save')
tFileMenu.AppendSeparator() # 구분선
tImpItem = tFileMenu.AppendMenu(wx.ID_ANY, '&Import', tImpSubItem) # 서브메뉴
tExitItem = tFileMenu.Append(wx.ID_EXIT, '&Exit')

tImpSubItem.Append(wx.ID_ANY, 'Import newsfeed list...') # Imp 항목의 서브항목1
tImpSubItem.Append(wx.ID_ANY, 'Import bookmarks...') # Imp 항목의 서브항목2
tImpSubItem.Append(wx.ID_ANY, 'Import mail...') # Imp 항목의 서브항목3

# 체크박스 메뉴 생성
self.sttsbar = tViewMenu.Append(wx.ID_ANY, 'Show statubar', '', kind=wx.ITEM_CHECK)
self.tlbar = tViewMenu.Append(wx.ID_ANY, 'Show toolbar', '', kind=wx.ITEM_CHECK)

self.Bind(wx.EVT_MENU, self.ToggleStatusBar, self.sttsbar) # 체크박스 메뉴 바인딩
self.Bind(wx.EVT_MENU, self.ToggleToolBar, self.tlbar) # 체크박스 메뉴 바인딩

# -- 기능 설정 -----------------------------------------------
self.Bind(wx.EVT_MENU, self.OnQuit, tExitItem) # Exit 기능 부여

self.toolbar = self.CreateToolBar() # Toolbar 생성
self.toolbar.AddLabelTool(1, '', wx.Bitmap('exit.png'))
self.toolbar.Realize()

self.statusbar = self.CreateStatusBar() # Statusbar 생성
self.statusbar.SetStatusText('Ready')

tViewMenu.Check(self.sttsbar.GetId(), True) # Statusbar 초기 설정
tViewMenu.Check(self.tlbar.GetId(), True) # Toolbar 초기 설정


def OnQuit(self, e): # Exit 닫기 함수
self.Close()

def ToggleStatusBar(self, e): # Statusbar 토글 함수
if self.sttsbar.IsChecked():
self.statusbar.Show()
else:
self.statusbar.Hide()

def ToggleToolBar(self, e): # Toolbar 토글 함수
if self.tlbar.IsChecked():
self.toolbar.Show()
else:
self.toolbar.Hide()

def tMain():
tApp = wx.App()
tFrame(None)
tApp.MainLoop()

if __name__ == '__main__':
tMain()



반응형

+ Recent posts