그래픽 사용자 인터페이스

그래픽 사용자 인터페이스

저는 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터미널

여기에 이미지 설명을 입력하세요
(확대하려면 이미지를 클릭하세요)

관련 정보