Skip to content
Snippets Groups Projects
Commit edb9b876 authored by 박영민's avatar 박영민
Browse files

Update README_기말과제보고서.md(사진 추가)

parent 75849925
No related branches found
No related tags found
No related merge requests found
......@@ -34,21 +34,64 @@ Audacity 원본코드에 직접적으로 적용하기 전에 wxPython을 활용
우선, 간단한 창(wxWindow)에 텍스트(wxStaticText)를 추가하고 이 텍스트의 폰트(wxFont)를 변경하는 것으로 시작했다. 이 단순한 예제를 활용해 wxFont와 SetFont()를 통한 폰트 설정이 제대로 동작하는지 확인했다.
# 여기 wxWindow안에 wxStaticText있는 레이아웃의 폰트 변경 사진 넣기
![그림3](/uploads/91ce877e890e8831706d28c7ad7f97d8/스크린샷_2024-06-21_오전_9.51.48.png)
그 다음으로는 패널(wxPanel)과 그 안에 추가적인 패널이 포함된 복잡한 구조에서도 동일한 폰트 변경이 가능한지, MenuBar의 폰트도 변경이 가능한 지 실험을 진행했다. 이 과정을 통해 폰트 변경 코드를 어느 위치에 넣어야 전체 프로그램에 일괄적으로 적용되는지를 확인하고자 했다.
# wxPanel 안의 wxPanel 안의 Button 구조의 폰트변경 사진 넣기
![그림4](/uploads/d1640df8bfc32e9f4b2d98c4ef455223/스크린샷_2024-06-21_오전_9.55.02.png)
하지만 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)
```
![그림5](/uploads/b332c22231445e84ae10e2bf38921343/2024-06-21_100653.png)
아래의 코드와 사진은 아이템마다 폰트를 설정하고 폰트 변경을 확인한 것이다. 메뉴바의 아이템마다 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)
```
![그림6](/uploads/e2c0dc19869655e6f1b193aa4fad27a2/2024-06-21_100625.png)
결론적으로 여러 구조에서 폰트 변경을 시도한 결과, 폰트 설정 코드를 상위 구조에 위치시키면 하위 구조들도 해당 폰트로 변경된다는 사실을 알 수 있었다. 즉, 프로그램 전체의 폰트를 수정하기 위해서는 가장 최상위 구조인 최상위 윈도우에 폰트 설정 코드를 넣어야 한다는 것을 파악했다. 또한 메뉴바의 폰트의 경우에는 폰트 설정을 추가해도 변경되지 않는다는 것을 파악했다.
##### 최종적으로 사용한 코드
``` mport wx
``` import wx
import wx.xrc
import gettext
_ = gettext.gettext
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment