diff --git "a/README_\352\270\260\353\247\220\352\263\274\354\240\234\353\263\264\352\263\240\354\204\234.md" "b/README_\352\270\260\353\247\220\352\263\274\354\240\234\353\263\264\352\263\240\354\204\234.md" index 3e0db978037f46939eab17faa36c9d46fc4e6dc3..8a9e38862bef30724141472e1131631ca068e620 100644 --- "a/README_\352\270\260\353\247\220\352\263\274\354\240\234\353\263\264\352\263\240\354\204\234.md" +++ "b/README_\352\270\260\353\247\220\352\263\274\354\240\234\353\263\264\352\263\240\354\204\234.md" @@ -34,21 +34,64 @@ Audacity 원본코드에 직접적으로 적용하기 전에 wxPython을 활용 우선, 간단한 창(wxWindow)에 텍스트(wxStaticText)를 추가하고 이 텍스트의 폰트(wxFont)를 변경하는 것으로 시작했다. 이 단순한 예제를 활용해 wxFont와 SetFont()를 통한 폰트 설정이 제대로 동작하는지 확인했다. -# 여기 wxWindow안에 wxStaticText있는 레이아웃의 폰트 변경 사진 넣기 + 그 다음으로는 패널(wxPanel)과 그 안에 추가적인 패널이 포함된 복잡한 구조에서도 동일한 폰트 변경이 가능한지, MenuBar의 폰트도 변경이 가능한 지 실험을 진행했다. 이 과정을 통해 폰트 변경 코드를 어느 위치에 넣어야 전체 프로그램에 일괄적으로 적용되는지를 확인하고자 했다. -# wxPanel 안의 wxPanel 안의 Button 구조의 폰트변경 사진 넣기 + 하지만 MenuBar의 경우에는 폰트를 바꿀 수 있는 방법이 확인되지 않았다. wxMenuBar는 wxWindow에 붙어 상단의 메뉴바를 표시해주는데, wxMenuBar의 함수에는 폰트를 설정할 수 있는 SetFont가 없었고 상위의 wxWindow의 폰트를 변경해도 MenuBar의 폰트가 변경되지는 않았다. wxMenuBar 하위의 wxMenu는 내부에 wxMenuItem을 통한 항목추가로 SetFont가 가능하다는 것을 확인했다. -# MenuBar안에 Menu와 MenuItem들어있는 구조의 폰트 변경 사진 넣기 이 때 MenuBar는 변경되지 못함을 파악해야함 +아래의 코드와 사진은 main_panel에서 폰트변경을 시도하고 메뉴바의 아이템들을 확인한 것이다. 그 결과 main_panel에서의 폰트 변경이 적용되지 않는 것을 확인할 수 있었다. +```self.main_panel = wx.Panel(self) + new_font = wx.Font(14, wx.DEFAULT, wx.ITALIC, wx.BOLD) # main_panel에 폰트 적용 + self.main_panel.SetFont(new_font) + menubar = wx.MenuBar() # 메뉴바 생성 + + fileMenu = wx.Menu() # 파일 메뉴 생성 + newItem = wx.MenuItem(fileMenu, wx.ID_NEW, '&New') + openItem = wx.MenuItem(fileMenu, wx.ID_OPEN, '&Open') + saveItem = wx.MenuItem(fileMenu, wx.ID_SAVE, '&Save') + exitItem = wx.MenuItem(fileMenu, wx.ID_EXIT, '&Exit') + + #item마다 font적용 + font = wx.Font(10, wx.DEFAULT, wx.ITALIC, wx.NORMAL) + #newItem.SetFont(font) + #openItem.SetFont(font) + #saveItem.SetFont(font) + #exitItem.SetFont(font) + +``` + + +아래의 코드와 사진은 아이템마다 폰트를 설정하고 폰트 변경을 확인한 것이다. 메뉴바의 아이템마다 setFont를 적용하니 아이템의 폰트가 바뀌는 것을 확인할 수 있었다. +```self.main_panel = wx.Panel(self) + new_font = wx.Font(14, wx.DEFAULT, wx.ITALIC, wx.BOLD) # main_panel에 폰트 적용 + #self.main_panel.SetFont(new_font) + + menubar = wx.MenuBar() # 메뉴바 생성 + + fileMenu = wx.Menu() # 파일 메뉴 생성 + newItem = wx.MenuItem(fileMenu, wx.ID_NEW, '&New') + openItem = wx.MenuItem(fileMenu, wx.ID_OPEN, '&Open') + saveItem = wx.MenuItem(fileMenu, wx.ID_SAVE, '&Save') + exitItem = wx.MenuItem(fileMenu, wx.ID_EXIT, '&Exit') + + #아이템마다 폰트 설정 + font = wx.Font(10, wx.DEFAULT, wx.ITALIC, wx.NORMAL) + newItem.SetFont(font) + openItem.SetFont(font) + saveItem.SetFont(font) + exitItem.SetFont(font) + +``` + 결론적으로 여러 구조에서 폰트 변경을 시도한 결과, 폰트 설정 코드를 상위 구조에 위치시키면 하위 구조들도 해당 폰트로 변경된다는 사실을 알 수 있었다. 즉, 프로그램 전체의 폰트를 수정하기 위해서는 가장 최상위 구조인 최상위 윈도우에 폰트 설정 코드를 넣어야 한다는 것을 파악했다. 또한 메뉴바의 폰트의 경우에는 폰트 설정을 추가해도 변경되지 않는다는 것을 파악했다. ##### 최종적으로 사용한 코드 -``` mport wx +``` import wx import wx.xrc import gettext _ = gettext.gettext