2013-09-02 2 views
3

저는 최근에 Qt를 배웠습니다. QML은 UI 구성 요소를 구현하는 데 매우 흥미 롭습니다. 프로젝트가 시작되기 전에 몇 가지 질문이 있습니다.QML 또는 C++로 구현 하시겠습니까?

  • 새로운 시작 프로젝트의 경우 QML을 사용해야합니까? QML은 QWidget을 대체 할 수 있습니까?)
  • QML을 사용하면 C++로 구현해야하는 것이 있습니까? 또는 더 나은 성능을 위해 C++로 더 잘 구현 되었습니까? (일부 사용자 화 된 UI 컴포넌트가 플러그인을 통해 통합 될 수 있음을 압니다.) QML과 C++ 위젯의 관계는 무엇입니까?
  • 성능 또는 렌더링 문제에 관해서는 QML이 네이티브 C++ 위젯보다 뛰어 납니까?
+2

는'QPainter' 스타일의 API를 사용하는 동안 극복 할 수없는 QWidget' 기반 렌더링 '의 성능에 한계가 있습니다. 그것은 많은 사람들이'QPainter' 스타일의 API가 시대에 뒤떨어져서 무한히 익숙하지 않기 때문에 얻지 못하는 것입니다. 초기 버전이 아니라면 1984 년부터 원래 MacOS 버전으로 되돌아갑니다. 그것이 설계되었을 때 현대 GPU는 공상 과학이었습니다. 일반적으로이 API를 잘 수행 할 수있는 방법은 없습니다. 어떤 경우 든 제대로 수행 할 수있는 방법은 있지만 항상 일반화 할 방법은 없습니다. Qt Quick 2의 씬 그래프는 성능면에서는 미래입니다. 그것은 모두 C++입니다! –

+0

일반적으로 QML을 사용하여 GUI를 만들고 JavaScript를 사용하여 빛을 계산하십시오. 계산이나 연산이 복잡하거나 자바 스크립트가 충분하지 않을 때마다 C++을 사용하십시오. 또한 QtQuick 컨트롤을 QML 파일로 사용할 수 있습니다. MVC 접근법은 QML + C++ 응용 프로그램에 적합한 선택입니다. –

답변

4

'사용해야합니까?'라는 질문을 시작할 때 SO가 올바른 질문을하지 못할 수도 있다는 점을 잘 알고 있습니다. 'It depends on ...'으로 시작하는 유일한 답이있을 때조차도.

QML은 QWidget을 대체하도록 설계되지 않았습니다. 그것은 다른 기술입니다. 어느 것이 당신의 요구 사항에 달려 있느냐에 달려 있습니다.

C++에서 추가 작업을 구현해야하는지 여부는 프로젝트에 따라 다릅니다. C++에서는 몇 가지 일이 쉬우 며, QML에서는 다른 것들이 더 쉽습니다. QML에서는 어떤 것들은 불가능합니다.

QML과 C++ 위젯 간에는 관계가 없습니다.

그리고 대부분의 경우 QML의 성능이 충분합니다. 거의 모든 경우에 QML은 사용자 인터페이스를 만드는 데 사용됩니다. 버튼을 클릭하거나 보관 용 계정 폴더를 여는 것이 성능상 중요한 경우가 많습니다.

0

저는 세계 정상 회의에서 몇 명의 Qt 전문가에게이 질문을 던질 수있는 기회가 있었으며 하드웨어 가속을 통해 QML 구성 요소 렌더링을 수행 할 수 있기 때문에 고성능 그래픽이 필요한 응용 프로그램에 적합합니다. 자동차 대시 보드. OTOH 위젯은 데스크탑 응용 프로그램에 사용되는 것 같습니다. 또 다른 고려 사항은 위젯은 Qss (Qt의 Css 버전)을 사용하여 스타일을 지정할 수 있지만 QML 구성 요소는 스타일을 지정할 수 없다는 것입니다.

QML 기반 응용 프로그램에서 계산 집약적 인 기능은 일반적으로 C++로 작성됩니다.

HTH,

에릭 G는

관련 문제