2016-06-09 6 views
2

QtLabs와 QtQuickControls를 모두 사용해야합니다. 둘 다 Button 유형이 있지만 QuickControls에서이 유형을 사용해야합니다. QML 파일은 실험실에서 버튼을 선택합니다. QuickControls에서 강제로 사용하려면 어떻게해야합니까?QML 가져 오기에서 자원 모호성 해결

import QtQuick 2.6 
import QtQuick.Controls 1.5 //This is what I need the QML file to pick button from 
import QtQuick.Controls.Styles 1.4 
import QtGraphicalEffects 1.0 
import QtQuick.Dialogs 1.2 
import QtMultimedia 5.6 
import Qt.labs.controls 1.0 //This is where it is picking Button from 

답변

3

문제를 해결하기 위해 빠른/쉬운 방법은 as 키워드 명명 된 가져 오기를 확인하는 것입니다. 가져 오기에 이름을 지정하면 해당 이름을 통해 모듈의 모든 구성 요소에 액세스 할 수 있습니다. 당신의 수입과

예 :

import QtQuick 2.6 
import QtQuick.Controls 1.5 as Ctrl1 //name for old controls 
import QtQuick.Controls.Styles 1.4 
import QtGraphicalEffects 1.0 
import QtQuick.Dialogs 1.2 
import QtMultimedia 5.6 
import Qt.labs.controls 1.0 as Ctrl2 //name for new controls 

Ctrl2.ApplicationWindow { 
    id: root 
    visible: true 
    width: 400 
    height: 300 

    Column { 
     anchors.fill: parent 

     Ctrl1.Button { 
      text: qsTr("one") 
     } 

     Ctrl2.Button { 
      text: qsTr("two") 
     } 
    } 
} 

이 방법은 쉽게 너무 자세한 될 수 있습니다. 이 경우 필자는 다른 파일의 내용을 물리적으로 구분하여 불쾌한 가져 오기를 분리합니다.

+0

고마워요! 나는이 접근법을 완전히 잊었다. –

+1

당신을 진심으로 환영합니다. 새 컨트롤에 뭔가가없는 경우 기능 요청 [여기] (http://bugreports.qt.io)을 발행하는 것이 좋습니다. 이들은 현재 적극적으로 개발되고 있으며이를 개선/통합 할 적절한시기입니다. :) – BaCaRoZzo

+0

안녕하세요! QML에 대한 발견을보고하고 싶었지만 'Create Issue'의 드롭 다운 메뉴에서 QML을 선택할 수있는 옵션을 찾을 수 없습니다. –