Skip to content
Snippets Groups Projects
Commit 6f0722c0 authored by 관우 안's avatar 관우 안
Browse files

사진 설명 가독성 개선

parent e2aa987e
Branches
No related tags found
No related merge requests found
...@@ -36,12 +36,14 @@ Audacity 원본코드에 직접적으로 적용하기 전에 wxPython을 활용 ...@@ -36,12 +36,14 @@ Audacity 원본코드에 직접적으로 적용하기 전에 wxPython을 활용
우선, 간단한 창(wxWindow)에 텍스트(wxStaticText)를 추가하고 이 텍스트의 폰트(wxFont)를 변경하는 것으로 시작했다. 이 단순한 예제를 활용해 wxFont와 SetFont()를 통한 폰트 설정이 제대로 동작하는지 확인했다. 우선, 간단한 창(wxWindow)에 텍스트(wxStaticText)를 추가하고 이 텍스트의 폰트(wxFont)를 변경하는 것으로 시작했다. 이 단순한 예제를 활용해 wxFont와 SetFont()를 통한 폰트 설정이 제대로 동작하는지 확인했다.
![그림3](/uploads/91ce877e890e8831706d28c7ad7f97d8/스크린샷_2024-06-21_오전_9.51.48.png) ![그림3](/uploads/91ce877e890e8831706d28c7ad7f97d8/스크린샷_2024-06-21_오전_9.51.48.png)
main_panel에 폰트를 변경하는 코드를 추가하여 wxStaticText가 변하는 것을 확인할 수 있었다. main_panel에 폰트를 변경하는 코드를 추가하여 wxStaticText가 변하는 것을 확인할 수 있었다.
그 다음으로는 패널(wxPanel)과 그 안에 추가적인 패널이 포함된 복잡한 구조에서도 동일한 폰트 변경이 가능한지, MenuBar의 폰트도 변경이 가능한 지 실험을 진행했다. 이 과정을 통해 폰트 변경 코드를 어느 위치에 넣어야 전체 프로그램에 일괄적으로 적용되는지를 확인하고자 했다. 그 다음으로는 패널(wxPanel)과 그 안에 추가적인 패널이 포함된 복잡한 구조에서도 동일한 폰트 변경이 가능한지, MenuBar의 폰트도 변경이 가능한 지 실험을 진행했다. 이 과정을 통해 폰트 변경 코드를 어느 위치에 넣어야 전체 프로그램에 일괄적으로 적용되는지를 확인하고자 했다.
![그림4](/uploads/d1640df8bfc32e9f4b2d98c4ef455223/스크린샷_2024-06-21_오전_9.55.02.png) ![그림4](/uploads/d1640df8bfc32e9f4b2d98c4ef455223/스크린샷_2024-06-21_오전_9.55.02.png)
wxButton마다 각각 SetFont()를 추가 하지 않고도 main_panel에만 폰트를 변경하는 코드를 추가하여 wxPanel 내부의 wxStaticText와 wxButton이 바뀌는 것을 확인할 수 있었다. wxButton마다 각각 SetFont()를 추가 하지 않고도 main_panel에만 폰트를 변경하는 코드를 추가하여 wxPanel 내부의 wxStaticText와 wxButton이 바뀌는 것을 확인할 수 있었다.
하지만 MenuBar의 경우에는 폰트를 바꿀 수 있는 방법이 확인되지 않았다. wxMenuBar는 wxWindow에 붙어 상단의 메뉴바를 표시해주는데, wxMenuBar의 함수에는 폰트를 설정할 수 있는 SetFont가 없었고 상위의 wxWindow의 폰트를 변경해도 MenuBar의 폰트가 변경되지는 않았다. wxMenuBar 하위의 wxMenu는 내부에 wxMenuItem을 통한 항목추가로 SetFont가 가능하다는 것을 확인했다. 하지만 MenuBar의 경우에는 폰트를 바꿀 수 있는 방법이 확인되지 않았다. wxMenuBar는 wxWindow에 붙어 상단의 메뉴바를 표시해주는데, wxMenuBar의 함수에는 폰트를 설정할 수 있는 SetFont가 없었고 상위의 wxWindow의 폰트를 변경해도 MenuBar의 폰트가 변경되지는 않았다. wxMenuBar 하위의 wxMenu는 내부에 wxMenuItem을 통한 항목추가로 SetFont가 가능하다는 것을 확인했다.
...@@ -176,6 +178,7 @@ if __name__ == '__main__': ...@@ -176,6 +178,7 @@ if __name__ == '__main__':
이후 Audacity 공식 문서와 디버깅을 통해서 Audacity의 초기화 부분을 분석했고 기본적인 구조를 파악할 수 있었다. 간단히 설명하면, 최상위 윈도우 아래에 메뉴바와 상태바, 일종의 레이아웃인 wxBoxSizer 등이 있고, wxBoxSizer 안에 트랙과 툴바가 있는 형태였다. 이후 Audacity 공식 문서와 디버깅을 통해서 Audacity의 초기화 부분을 분석했고 기본적인 구조를 파악할 수 있었다. 간단히 설명하면, 최상위 윈도우 아래에 메뉴바와 상태바, 일종의 레이아웃인 wxBoxSizer 등이 있고, wxBoxSizer 안에 트랙과 툴바가 있는 형태였다.
![스크린샷_2024-06-19_223559](/uploads/a308ff23f5d5be11cd439c19e9ca4089/스크린샷_2024-06-19_223559.png) ![스크린샷_2024-06-19_223559](/uploads/a308ff23f5d5be11cd439c19e9ca4089/스크린샷_2024-06-19_223559.png)
위 사진은 Audacity의 초기화 과정이다. AudacityApp::OnInit -> AudacityApp::InitPart2 -> ProjectManeger::New -> AudacityProject::Create 과정을 거쳐 호출되는 Create함수에서 최상위 윈도우가 선언된다. 이후 ProjectManeger에서 생성된 AudacityProjcet의 최상위 윈도우를 가져와 BoxSizer와 statusBar 등을 붙여 초기 레이아웃을 구성한다. 위 사진은 Audacity의 초기화 과정이다. AudacityApp::OnInit -> AudacityApp::InitPart2 -> ProjectManeger::New -> AudacityProject::Create 과정을 거쳐 호출되는 Create함수에서 최상위 윈도우가 선언된다. 이후 ProjectManeger에서 생성된 AudacityProjcet의 최상위 윈도우를 가져와 BoxSizer와 statusBar 등을 붙여 초기 레이아웃을 구성한다.
### Audacity 적용과 문제점 ### Audacity 적용과 문제점
...@@ -274,9 +277,11 @@ gFont.SetPointSize(fontSize + 2); ...@@ -274,9 +277,11 @@ gFont.SetPointSize(fontSize + 2);
``` ```
![스크린샷_2024-06-20_223833](/uploads/5a4448654ac1cf618b634815d150d2e4/스크린샷_2024-06-20_223833.png) ![스크린샷_2024-06-20_223833](/uploads/5a4448654ac1cf618b634815d150d2e4/스크린샷_2024-06-20_223833.png)
수정 전 상황, 붉은 색으로 표시된 부분에서 글자 흐릿함을 확인할 수 있고, 아래 패널의 좋지 못한 가독성도 확인할 수 있다. 수정 전 상황, 붉은 색으로 표시된 부분에서 글자 흐릿함을 확인할 수 있고, 아래 패널의 좋지 못한 가독성도 확인할 수 있다.
![스크린샷_2024-06-21_220014](/uploads/65bbeec5d06e0f32ecf588e43f49407a/스크린샷_2024-06-21_220014.png) ![스크린샷_2024-06-21_220014](/uploads/65bbeec5d06e0f32ecf588e43f49407a/스크린샷_2024-06-21_220014.png)
수정 후 상황, 붉은 색으로 표시된 부분에서 폰트 변경과 크기 수정을 통한 가독성 향상을 확인할 수 있다. 수정 후 상황, 붉은 색으로 표시된 부분에서 폰트 변경과 크기 수정을 통한 가독성 향상을 확인할 수 있다.
...@@ -296,6 +301,7 @@ SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); ...@@ -296,6 +301,7 @@ SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
``` ```
![스크린샷_2024-06-21_233737](/uploads/a3d673aff60b0e3527ed06ea693e13bb/스크린샷_2024-06-21_233737.png) ![스크린샷_2024-06-21_233737](/uploads/a3d673aff60b0e3527ed06ea693e13bb/스크린샷_2024-06-21_233737.png)
정상적으로 DPI인식이 되어 메뉴부분은 흐릿하지 않게 변했지만 나머지 UI들이 매우 작아지는 결과가 나타난다. 정상적으로 DPI인식이 되어 메뉴부분은 흐릿하지 않게 변했지만 나머지 UI들이 매우 작아지는 결과가 나타난다.
...@@ -312,6 +318,7 @@ https://github.com/audacity/audacity/issues/503 ...@@ -312,6 +318,7 @@ https://github.com/audacity/audacity/issues/503
https://forum.audacityteam.org/t/audacity-ui-blurry-in-windows-10/51298/4 https://forum.audacityteam.org/t/audacity-ui-blurry-in-windows-10/51298/4
![스크린샷_2024-06-21_221443](/uploads/bc3d375c4fbae1afec39e2bc9c1dfdb4/스크린샷_2024-06-21_221443.png) ![스크린샷_2024-06-21_221443](/uploads/bc3d375c4fbae1afec39e2bc9c1dfdb4/스크린샷_2024-06-21_221443.png)
폰트 수정한 상황에 DPI까지 재정의해준다면 더욱 가독성이 높아진 결과를 확인할 수 있다. 폰트 수정한 상황에 DPI까지 재정의해준다면 더욱 가독성이 높아진 결과를 확인할 수 있다.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment