커뮤니티 | 큐티/임베디드/큐토피아 | PODO | SDL | 마이크로윈도우 | 리눅스프로그래밍 | 기타 | 포인트순위 | 최근게시물최근게시물 RSS  
korone.net에 다루었으면 하는것은요?
 
 
 
 
 
237
1,061
3,878
3,313,243
  현재접속자 : 30 (회원 0)






배너 신청 문의

 
작성일 : 16-12-03 13:44
[QT/X11] QML 모델을 C++ 코드로 구현하는 방법 중 하나
 글쓴이 : 구름님
조회 : 468   추천 : 0  
-- CPP source
...
    QString jsonText =
            "{"
            "   \"data\": ["
            "       { \"color\": \"red\", \"text\": \"빨강\" },"
            "       { \"color\": \"green\", \"text\": \"녹색\" },"
            "       { \"color\": \"blue\", \"text\": \"파랑\" },"
            "       { \"color\": \"yellow\", \"text\": \"노랑\" },"
            "       { \"color\": \"purple\", \"text\": \"보라\" },"
            "       { \"color\": \"pink\", \"text\": \"분홍\" },"
            "       { \"color\": \"lightgreen\", \"text\": \"연두\" },"
            "       { \"color\": \"lightblue\", \"text\": \"하늘\" },"
            "       { \"color\": \"brown\", \"text\": \"갈색\" }"
            "   ]"
            "}"
            ;
    QJsonObject json = QJsonDocument::fromJson(jsonText.toUtf8()).object();
    QJsonArray array = json.value(QStringLiteral("data")).toArray();
    rootObject()->setProperty("model", array);
...

-- main.qml
Item {
    id: iamarootobject
    property variant model   // --- [1]
    ListView {
        id: iamalistview
        anchors.fill: parent
        model: iamarootobject.model
        delegate: Rectangle {
            width: parent.width; height: 30
            Text { anchors.fill: parent; text: modelData.text; color: modelData.color }
        }
    }
}

그러니까.. 2차원 배열(?), 테이블(?) 형식의 데이터를 qml 모델로 만드는 방법중 하나 입니다.
간단한 것인데, 구글링해도 자료를 찾아보기 힘들어 올려봅니다.

위의 [1] 부분이 재미나더군요.
property alias model: iamalistview.model => 이렇게 해놓으면 에러가 나고 인식을 못합니다.
반드시 property variant model로 사용자 프로퍼티를 만들어야 하더군요.
아마도 variant 부분에서 jsonarray가 variantmaparray(?)로 변경되어 처리되어지는 듯 합니다.
data가 두가지 이상의 KEY/VALUE로 구성된다면 modelData.KEY로 값을 얻어오고
한가지로만 구성되어 있으면 KEY/VALUE의 맵형식을 따를 필요없이 VALUE array만으로 해도 되니 - 1차원배열 -
이때는 'modalData'로만 적어서 값을 얻어오면 됩니다.
음.. 그리고 1차원 배열 형식이라면 차라리,
rootobject()->setProperty(..., QVariant::fromValue(qStringListData))
이렇게 쓰는것은 쉽게 찾아볼 수 있습니다.



 
 

Total 201
번호 제   목 글쓴이 날짜 조회 추천
201 [QT/X11] QML 모델을 C++ 코드로 구현하는 방법 중 하나 구름님 12-03 469 0
200 [QT/X11] QWT for qt android (1) 구름님 03-07 2842 1
199 [QT/Win32] Qpaint를 이용해서 틱택토게임을 만들어보려하… 몽블랑 01-20 2665 0
198 [QT/Win32] QtSingleApplication 이용하기 (1) starbig 01-18 2720 0
197 [QT/Win32] Qt 에서 Daum Maps Api geo [ 주소->좌표 변환 ] 사… starbig 01-15 2925 0
196 [QT/Win32] Qt에서 윈도우 서비스 이용하기, Qt Windows Servic starbig 01-15 2555 0
195 [QT/Embedded] QTcpSocket사용 시 플러그 뽑힘 증상 체크 방법 요원009 11-13 5805 0
194 [QT/Win32] QML 에서 CustomModule 을 import 하여 사용하기 tmdwn 05-18 3697 0
193 [QT/Embedded] Qt update함수/repaint함수 사용법좀 알려주세여.. (1) 잉농 05-14 3381 0
192 [QT/Embedded] C++ Exception을 활용한 런타임 콜스택 정보 얻기 (1) korone 04-01 3355 0
191 [QT/Embedded] Qt 5.4.1 raspberry Pi 프로그램 개발하기 (5) 구름님 03-31 10872 1
190 [QT/Win32] Qt 다국어 처리 (2) korone 03-17 6701 0
189 [QT/Win32] signal to signal devilqoo 02-13 3045 0
188 [QT/Win32] Qt x64 바이너리 제공 사이트 (1) 인라이… 02-12 3052 1
187 [QT/Embedded] 우분투 Qt5 크로스 컴파일 (14/11/26 2차 수정) (9) 김아무… 11-12 8891 0
186 [QT/Embedded] Qt 5.3.2에서 Mouse Double Click시 이벤트 문제 (2) korone 11-11 3339 0
185 [QT/Embedded] QtWinExtras korone 11-11 3182 0
184 [QT/Win32] Qt 코딩 스타일 (편집 편) (4) devilqoo 10-22 5917 0
183 [QT/Win32] Qt와 C++11 (1) devilqoo 10-12 6083 1
182 [QT/Win32] Qt 에서의 이벤트 처리 (5) devilqoo 10-09 5653 0
181 [QT/Win32] QList와 QVector의 비교. (2) devilqoo 10-02 4260 0
180 [QT/Win32] Qt에서 사용되는 컨테이너들을 정리해 보았습… (4) devilqoo 10-01 4745 0
179 [QT/X11] qmake DEFINES 변수에 공백문자가 포함된 값을 설… (1) 별님 09-25 3160 0
178 [QT/Win32] 데이터 압축 관련 qCompress(), qUncompress() (9) 구름님 09-16 3396 0
177 [QT/Win32] QML 로 One-Source Multi-Platform (iOS, Android) 실행 tmdwn 09-03 4593 0
176 [QT/Win32] QML 로 iOS Application 제작하기 tmdwn 09-02 4649 0
175 [QT/Win32] QML 로 Android Application 제작하기 (4) tmdwn 09-02 4725 2
174 [QT/X11] qt에서 메모리 조작하기. (2) 나무나… 07-25 4907 0
173 [QT/Win32] Q_DECLARE_FLAGS 매크로 (2) 구름님 07-11 3982 2
172 [QT/Win32] Q_PROPERTY 매크로 (6) 구름님 07-09 5033 2
 1  2  3  4  5  6  7  


About korone.net | Copyright 2003 korone.net. All rights reserved.