2013-02-10 2 views
0

이것이 내가 누락 된 정말 작은 것일 수 있음을 알고 있지만, 이것을 이해하려고 애쓰는 시간을 보냈습니다. 나는 Objective-C 배경에서 왔고 내가하려고하는 것은 이것이다 :BB 캐스케이드, C에서 Page1.qml 및 Page2.qml에 데이터 전달

나는 navigationPane 인 main.qml을 가지고 있으며, 첨부 된 객체로 두 개의 외부 페이지가 추가되어있다. 두 페이지에는 그리드 목록보기가 있습니다. 자, Json 파일을로드하고 결과를 main.qml 파일에 채우는 MyApp.cpp 파일이 있습니다. 나는이 페이지에 relevalt 항목 만 표시합니다. 사용자가 어떤 항목을 두 드렸을 때 위에서 언급 한 바와 같이 그리드 목록보기가있는 page2.qml로 가져 와서 main.qml (MyApp.cpp의 모든 데이터가 있음)에서 전달 된 dataModel로 채 웁니다. 이것은 나에게 전혀 기쁨을 안겨 줬어! 도움이 필요해. 이 작업을하려면 어떻게해야합니까? 제발 이것에 대한 도움이 필요합니다 ...

+0

저는 이것을 C++, QML 및 JSON으로 태그하는 것을 주저합니다. 그게 맞을까요? 또는 태그를 추가 할 수 있습니다. – Dukeling

+0

sure ........... –

+0

여기에 설명 된대로 속성 별칭을 사용하여 속성이나 개체를 노출 할 수 있습니다. http://bbcascadescode.tumblr.com/post/40740528163/stack-of-screens- passing-information-around –

답변

0

이것이 최선의 방법인지 확실치 않지만, 가장 쉬운 방법은 Qt 전역 객체를 사용하는 것입니다.

기본적으로 데이터 또는 개체를 Qt 개체에 할당하면 다른 페이지에서 액세스 할 수 있습니다.

예. 다른 페이지 (들) 당신이 그것을 액세스 할 수 있습니다에서 그런

function getData(data) { 
    Qt.myVariable = data; 
} 

: onCreationCompleted 또는 어떤 기능에 main.qml에서
당신은 당신의 데이터를받을 수 있습니다. 예 : Page2.qml에서 : 당신이 "Qt.myNavPane.push (페이지 같은 것들 그래서 등 탐색 창, 시트, 페이지를 지정할 수 있도록

Page { 
    onCreationComplete: { 
     myLabel.text = Qt.myVariable; 
    } 
} 

내가 언급 한 바와 같이,이뿐만 아니라 개체에 대한 작업) "가 가능해진다.

Qt를 다양한 용도로 사용해야하는 곳에서 문제가 발생했습니다. 신호와 슬롯은 내가 생각하기에 더 나은 연습이지만 항상 실용적이지는 않습니다.

+0

안녕하세요 똑똑한 사람들 ... 당신의 답변에 대해 너무 고마워요. 다음 페이지로 넘어 가기를 원하는 데이터는 page2.qml의 그리드리스트 뷰에서 사용될 데이터 모델이다. 속성 별칭을 사용하여 page1.qml에서 page2.qml로 텍스트를 전달했지만 모델을 전달할 때 목록을 채우지 않습니다. 또한 page2.qml에는 변형 별칭 인 detailData라는 속성이 있습니다. 희망이 나는 의미가 있습니까? @peter –

+0

속성 별칭 대신 함수를 사용해 볼 수도 있습니다. 따라서 page2에서 "function passData (dataModel)"을 가질 수 있고 Page1에서 "page1.passData (myDataModel)"과 같은 함수를 호출 할 수 있습니다. 내가 네가 옳은 것을 이해하면 네가 찾고있는 것이 될지도 모른다. – hyarion