최근 리눅스, 윈도우, macOS, UNIX 및 모바일 플랫폼용 그래픽 인터페이스를 제작할 수 있는 크로스 플랫폼 툴킷인 wxWidgets 3.2.0 의 새로운 안정 버전 출시가 발표 되었습니다.
3.0 버전과 비교했을 때, API 수준에서 몇 가지 호환성 문제가 있습니다. 다른 툴킷과 달리 wxWidgets는 GUI를 시뮬레이션하는 대신 시스템 API를 사용하여 대상 시스템에 진정한 네이티브 앱과 같은 인터페이스를 제공합니다 .
wxWidgets는 플랫폼의 네이티브 컨트롤에 얇은 추상화 계층을 제공하기 때문에 네이티브 툴셋이라고 가장 잘 설명할 수 있습니다 . 원시적인 그래픽을 사용하여 컨트롤을 에뮬레이션하는 것과는 대조적입니다. 기존 플랫폼에서 네이티브 컨트롤을 사용하면 Swing(Java용)과 같은 다른 라이브러리보다 그래픽 인터페이스에서 더욱 네이티브한 시각적 결과를 얻을 수 있을 뿐 아니라 성능 향상 및 기타 이점도 제공합니다.
wxWidgets는 그래픽 인터페이스 개발에만 국한되지 않습니다. 이는 라이브러리에 통신 프로세스 간 계층, 소켓과 같은 네트워크 기능 등이 있기 때문입니다.
wxWidgets 3.2.0의 새로운 주요 기능
이번 새 버전에서는 wxQt의 새로운 실험적 포트 구현이 강조되었는데 , 이를 통해 wxWidgets가 Qt 프레임워크에서 실행될 수 있으며, wxGTK 포트는 Wayland 프로토콜을 완벽하게 지원합니다.
또한, 고해상도 (High DPI) 디스플레이 지원이 추가되었으며, 모니터별로 다른 DPI 설정을 지정하고 DPI 설정을 동적으로 변경할 수 있는 기능이 추가되었습니다. 더 나아가, 다양한 해상도로 표현된 비트맵 옵션을 함께 조작할 수 있는 새로운 wxBitmapBundle API가 제안되었습니다.
또 다른 주목할 만한 변화는 새로운 컴파일러(MSVS 2022, g++12, clang14 포함) 및 운영 체제를 빌드 시스템에 지원하는 새로운 CMake 기반 빌드 시스템이 도입된 것 입니다.
또한 주목할 만한 점은 OpenGL 호환성 개선 , 최신 버전의 OpenGL(3.2 이상) 사용성 향상, LZMA 압축 및 64비트 ZIP 파일 지원 추가입니다.
반면에 wxString 및 "char*" 유형의 문자열 간의 위험한 암시적 변환을 비활성화하고 마우스로 재생되는 제스처를 제어하는 이벤트에 대한 지원을 추가하여 향상된 컴파일 시간 보안을 강조합니다.
wxFont 및 wxGraphicsContext 클래스는 이제 글꼴 크기와 스타일러스 너비를 지정할 때 정수가 아닌 값을 사용할 수 있도록 합니다 . wxStaticBox 클래스는 창에 임의의 레이블을 할당하는 기능을 구현합니다.
그 외 주목할 만한 변경 사항은 다음과 같습니다.
- HTTPS 및 HTTP/2에 대한 지원이 wxWebRequest API에 추가되었습니다.
- wxGrid 클래스에서 열 및 행 고정에 대한 지원이 추가되었습니다.
- 어두운 테마를 사용하는 기능 및 ARM 프로세서 기반 장치에 대한 추가 지원을 포함하여 macOS 플랫폼에 대한 지원이 향상되었습니다.
- C++11 표준을 지원하도록 개선되었습니다. C++20 컴파일러에 의한 어셈블리 지원이 추가되었습니다.
- 포함된 모든 타사 라이브러리가 업데이트되었습니다. WebKit 2 및 GStreamer 1.7에 대한 지원이 추가되었습니다.
마지막으로, 더 자세한 내용을 알고 싶으시다면 이 링크를 따라 가시면 됩니다 .
wxWidgets 다운로드
이 툴킷을 다운로드하고 설치하는 데 관심이있는 사람들은 다운로드 섹션의 공식 웹 사이트에서 대상 운영 체제 (Windows, Mac 또는 Linux) 용 패키지를 얻을 수 있습니다.
데비안, 우분투 또는 이들의 일부 파생물을 사용하는 경우 터미널에 다음을 입력하여 컴파일 할 수 있습니다.
sudo apt-get install libgtk-3-dev build-essential checkinstall
그들은 공식 웹 사이트에서 다운로드 한 패키지의 압축을 풀고 결과 폴더에 들어갑니다. 여기에서 폴더 경로에 위치한 터미널을 열거 나 터미널의 폴더 내부에 위치 할 수 있습니다.
그리고 다음으로 컴파일을 진행합니다.
mkdir gtk-build
cd gtk-build/
../configure --disable-shared --enable-unicode
make