저는 C++로 개발을 하고 있습니다. GTK가 Wayland로 대체된다는 소식을 들었습니다.
장기적으로 C++에 적합한 GUI 라이브러리는 무엇입니까?
답변1
Wayland가 다음을 대체합니다.X11. GTK+는 여전히 GNOME과 일부 다른 데스크탑 환경에서 사용되는 GUI 툴킷이며 이를 대체할 계획은 없습니다.
Linux용 두 가지 큰 GUI 라이브러리는 다음과 같습니다.Qt그리고GTK+. 둘 다 C++와 함께 사용할 수 있으며 가까운 미래에도 그대로 유지될 가능성이 높습니다.
어느 것이 더 나은지는 어떤 데스크탑 환경이 주요 대상인지에 따라 다릅니다. 두 라이브러리 모두 모든 데스크톱 환경에서 사용할 수 있지만 데스크톱 환경에 "잘못된" GUI 툴킷을 사용하는 경우 앱의 모양과 느낌이 달라집니다.
Linux가 아닌 다른 시스템에서 앱을 사용하려면 일반적으로 Qt가 더 나은 선택입니다.
답변2
글레이드
C++ 코드를 사용하여 위젯을 인스턴스화하고 정렬할 수 있지만 이는 곧 지루하고 반복적일 수 있습니다. 그리고 변경 사항을 표시하려면 재컴파일이 필요합니다. Glade 애플리케이션을 사용하면 화면에 위젯을 배치한 다음 배열에 대한 XML 설명을 저장할 수 있습니다.
여기에는 다음과 같은 장점이 있습니다.
- 더 적은 C++ 코드가 필요합니다.
- UI 변경사항을 더욱 빠르게 확인할 수 있어 UI 개선이 가능합니다.
- 프로그래밍 기술이 없는 디자이너도 UI를 만들고 편집할 수 있습니다.
Glade로 설계된 사용자 인터페이스는 잘 알려진 XML 형식으로 저장되므로 외부 도구와 쉽게 통합할 수 있습니다. 아마도 런타임에 XML 파일을 로드하고 인터페이스를 생성할 수 있는 libglade와 같은 도구와 함께 사용하고 싶을 것입니다.
현재 지원되는 모든 Ubuntu 버전에 Glade GTK+ User Interface Builder를 설치하려면 터미널을 열고 다음을 입력하세요.
sudo apt install glade
Glade를 설치하지 않고 GTK+ 라이브러리용 개발 파일만 설치하려면 다음을 입력하세요.
sudo apt install libgtk-3-dev
Qt 크리에이터
Qt Creator는 Qt 애플리케이션 프레임워크를 사용하여 더 빠르고 쉽게 개발할 수 있도록 설계된 크로스 플랫폼 통합 개발 환경(IDE)입니다.
여기에는 다음이 포함됩니다.
- 고급 C++ 코드 편집기
- 통합 GUI 레이아웃 및 양식 디자이너
- 프로젝트 및 빌드 관리 도구
- 상황에 맞는 통합 도움말 시스템
- 시각적 디버거
- 신속한 코드 탐색 도구
- 다양한 플랫폼 지원
- Qt 퀵 디자이너
현재 지원되는 모든 Ubuntu 버전에 QT Creator를 설치하려면 터미널을 열고 다음을 입력하세요.
sudo apt install qtcreator
$apt-cache는 qtcreator에 따라 달라집니다 | grep qt qtcreator 의존함: libqt5sql5-sqlite 의존함: qml-module-qtqml-models2 의존함: qml-module-qtquick-controls 의존함: qml-module-qtquick2 의존함: qtchooser qtchooser:i386 의존함: qtcreator-data 의존함: libqbsqtprofilesetup1.10 의존함: libqt5concurrent5 의존함: libqt5core5a 의존함: libqt5designer5 종속됨: libqt5designercomComponents5 의존함: libqt5gui5 의존함: libqt5help5 의존함: libqt5network5 의존함: libqt5printsupport5 의존함: libqt5qml5 의존함: libqt5quick5 의존함: libqt5quickwidgets5 의존함: libqt5sql5 의존함: libqt5widgets5 의존함: libqt5xml5 종속됨: <qtdeclarative-abi-5-9-5> libqt5qml5 추천: qt5-doc 권장사항: qt5-qmltooling-plugins 권장사항: qtbase5-dev-tools qtbase5-dev-tools:i386 추천: qtcreator-doc 권장사항: qtdeclarative5-dev-tools qtdeclarative5-dev-tools:i386 권장사항: qttools5-dev-tools qttools5-dev-tools:i386 추천: qttranslations5-l10n 권장사항: qtxmlpatterns5-dev-tools qtxmlpatterns5-dev-tools:i386 q터미널