IT TIP

qt qml과 qt quick의 차이점

itqueen 2020. 11. 22. 20:59
반응형

qt qml과 qt quick의 차이점


QML, QtQuick 1.0 및 QtQuick 2.0과 혼동됩니다. 그들 사이의 차이점은 무엇입니까?

Qt 5.1.1을 기반으로 QtCreator 2.8.1을 사용합니다. 데스크톱 프로그램을 개발하고 싶은데 어떤 기술을 사용해야합니까?


편집 : 더 나은 답변을 위해 @TheBootroo를 참조하십시오

내 답변이 OP에 의해 수락되었지만 내 답변을 수정하거나 삭제하고 싶습니다.

내 대답은 2013 년 Qt 5.2에 대한 개인적인 경험을 바탕으로 한 것이 었는데, 그중 일부는 오늘날 더 이상 유효하지 않습니다.

  • QML은 Qt Meta Language이거나 Qt Modeling Language는 사용자 인터페이스 마크 업 언어입니다.
  • QtQuick (QtQuick 1.x 및 QtQuick 2.x 모두)은 사용자 인터페이스 중심 애플리케이션을 설계하기위한 선언적 언어로 QML을 사용합니다.

Qt 5.2에서 Qt Quick Application을 만들었을 때 중요한 질문은 앱이 QtQuick 1.x인지 QtQuick 2.x인지였습니다. 이것은 사용 가능한 구성 요소에 영향을 미칠뿐만 아니라 응용 프로그램이 렌더링되는 방식을 변경했습니다.

2013 년 :

  • 버튼과 같은 QML UI 구성 요소가 OS 고유의 구성 요소에 의해 렌더링 되었기 때문에 이전 운영 체제 (예 : Windows XP) 또는 이전 하드웨어 (예 : OLPC)를 대상으로해야하는 경우 QtQuick 1.x 응용 프로그램을 자주 선택했습니다. 그러나 이는 가장 낮은 공통 분모의 UI 구성 요소 집합을 대상으로하고 있으며 UI 경험은 플랫폼마다 다를 수 있음을 의미합니다.

  • QtQuick 2.x 응용 프로그램은보다 일관된 크로스 플랫폼 모양을 위해 선택되었지만 플랫폼이 OpenGLES를 충분히 구현해야했습니다. 그렇지 않으면 응용 프로그램이로드되지 않을 수 있습니다. 이것은 불행히도 OpenGLES를 구현 한 최신 컴퓨터와 장치로만 응용 프로그램을 제한했습니다.

원래 답변을 작성했을 때 QtQuick 2.x보다 일부 시나리오에서 QtQuick 1.x를 권장합니다.

그러나 그 이후로 Qt 5+는 이제 훨씬 더 나은 드라이버 지원을 제공하는 Direct3D에 대한 호출을 변환하여 Windows 데스크톱에 고성능 OpenGL 호환성을 제공하는 Windows에서 ANGLE을 대상으로 지정할 수 있습니다.


QML은 언어의 이름입니다 (다른 언어 인 C ++와 마찬가지로 ...)

QtQuick은 QML 용 툴킷으로, QML 언어로 그래픽 인터페이스를 개발할 수 있습니다 (QML을위한 다른 툴킷이 있고, 일부는 Sailfish Silica 또는 BlackBerry Cascade 와 같은 그래픽이며, 일부는 QMake / CMake /를 대체하는 QBS 와 같은 그래픽이 아닙니다. 하다...)

QtQuick 1.x는 Qt4.x 기반이었으며 QPainter/ QGraphicsViewAPI를 사용하여 장면을 그렸습니다. QtQuick 2.X는 고도로 최적화 된 OpenGLES2 추상화 레이어 인 Scene Graph를 기반으로하는 Qt5.0과 함께 도입되었습니다.

Qt5.1에서는 멀티 스레딩을 사용하도록 Scene Graph가 향상되었습니다 (QtQuick 2.1) Qt5.2에서는 Scene Graph가 CPU / GPU 호출 및 메모리 사용량을 줄이기 위해 훨씬 더 최적화되었습니다.

QML 엔진은 Qt4.x의 JsCore (Webkit의 JS 엔진)를 기반으로하고 5.0의 V8 (Google Chrome의 JS 엔진)을 기반으로했지만, 이로 인해 모바일, 특히 iOS에서 사용할 수 없으므로 Qt5.2는 새로운 Qt 녀석을 위해 만든 V4VM이라는 QML 엔진.

QtQuick을 기반으로하는 기본적으로 보이는 위젯 세트 인 QtQuick 컨트롤도 있습니다. 원래 데스크톱 용 이었지만 Qt 5.4는 holo 테마를 기반으로하는 Android 용 기본 L & F를 도입했습니다. 재료 테마와 iOS 테마는 개발 중이지만 현재 Qt 릴리스 (5.5)에서는 사용할 수 없습니다. 일부 컨트롤은 Enterprise 전용 이었지만 Qt5.5에서는 Extras로 이름이 바뀌 었으며 이제 모든 라이선스에서 사용할 수 있습니다. Qt 5.6의 기술 미리보기 단계에서 더 나은 성능을 얻기 위해 컨트롤을 완전히 재 작성한 QtQuickControls 2라는 또 다른 개발이 진행 중입니다.

Qt5.5에는 QML 언어를 사용하여 3D 앱 / 게임을 만드는 기능을 제공하는 QtQuick3D라는 새로운 모듈이 있습니다. 너무 2D / 2.4D 지향적 인 SceneGraph를 사용하지 않습니다. 이를 위해 새 엔진의 이름이 FrameGraph로 지정됩니다.

최신 앱을 개발하는 경우 Qt5.x + QML 2.x + QtQuick 2.x를 사용하여 가능한 가장 방대한 사용자 기반을 터치해야합니다.

일반적으로 Qt는 더 많은 기능, 더 많은 성능 및 더 많은 플랫폼을 추가하기 때문에 항상 업데이트를 따르십시오.

참고 URL : https://stackoverflow.com/questions/19696153/difference-between-qt-qml-and-qt-quick

반응형