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






배너 신청 문의

 
작성일 : 15-05-18 16:31
[QT/Win32] QML 에서 CustomModule 을 import 하여 사용하기
 글쓴이 : tmdwn
조회 : 6,143   추천 : 0  
이글은 제가 podovat.com의 blog에 올린글인 (http://www.podovat.com/?p=457) 에서 가져온 것입니다.

QML 을 작성하다 보면 import 구문을 자주 보게 됩니다.
C 의 #include 구문과 같은 역할을 하는 구문인데요

보통 직접 작성한 qml 파일을 import 하게 된다면 다음과 같이 쓰고 있으실 겁니다.

import "." 또는
import "Button.qml"

해당 문제에 대해서 조금 더 간결하고, 알기쉬운 import QtQuick 1.1 과 같은 방식을 원하였기 때문에 해당 이슈에 대해 접근하였고 좀 더 간결한 코드를 얻어낼 수 있었습니다.

디렉토리 선언

$work : project 디렉토리
 $qt : qt 가 설치된 디렉토리


1. Module 디렉토리 생성

$work/CustomModule 디렉토리를 생성 합니다.

 

2. qmldir 파일 생성

$work/CustomModule 디렉토리 내에 qmldir 파일을 생성합니다 (확장자 없음)

 

3. CustomModuel 의 CustomRectangle 생성

필요한 qml 파일들을 CustomModule 디렉토리 내에 생성
여기서는 예제를 위하여 다음과 같은 QML 파일을 생성합니다.

CustomRectangle.qml

import QtQuick 1.0

Rectangle {
 width: 100
 height: 100
 color: "red"
 }


4. qmldir 파일에서 선언하기

2 번에서 만들어놓았던 qmldir 파일내부에서 다음과 같이 선언합니다.
다시 한번 말씀드리지만 qmldir 파일은 확장자가 없어야합니다.

qmldir

module CustomModule
 CustomRectangle 1.0 CustomRectangle.qml


5. import 디렉토리 추가

기본적인 imports 폴더는 $qt/importrs 폴더입니다.
해당 폴더에 위에서 작성한 CustomModule 을 가져다놓으면 import CustomModule 1.0 과 같은 방식으로 사용할 수 있으나, 자기 자신만 적용되는 문제가 있기때문에 ini 파일을 생성하여 수행하도록 하였습니다.

ini 파일의 이름은 qmlpath.ini 로 지정하고 qmlpath.ini 의 세부내용은 $work 디렉토리가 d:/work/testCustomModule 일 경우 다음과 같습니다.

qmlpath.ini 파일이 위치하게 될 곳은 실행파일의 디렉토리 입니다

path = d:/work/testCustomModule/CustomModule
위에 생성한 qml 파일의 내용을 가지고 qml 의 importpath 를 추가해줍니다.

QString qmlPathFilename = QApplication::applicationDirPath() + "/qmlpath.ini";
qDebug() << "main qmlPathFilename:" << qmlPathFilename;
QSettings qmlPathSettings(qmlPathFilename, QSettings::IniFormat);

QString importPath = qmlPathSettings.value("path", "").toString();

if (!importPath.isEmpty())
{
 qDebug() << "main addImportPath path:" << importPath;
 viewer.engine()->addImportPath(qPrintable(importPath)); // imports path 추가
}


6. CustomModule 사용하기

5단계까지 완료하셨으면. 실제로 사용을 하기위한 코드는 다음과 같습니다.
(해당 예제를 수행하기 위해서 프로젝트 생성을 하였으면 main.qml 파일내에 다음과 같이 선언합니다.)

main.qml 내용

import QtQuick 1.1
import CustomModule 1.0

Rectangle {
    width: 800
    height: 480

    CustomRectangle {
        x: 50
        y: 50
    }
}
nais·sance [nisns] http://tmdwn.net



 
 

Total 198
번호 제   목 글쓴이 날짜 조회 추천
198 [QT/Win32] MFC에서 Qt 사용하기 팁. (3) devilqoo 09-10 3406 0
197 [QT/X11] QML 모델을 C++ 코드로 구현하는 방법 중 하나 (1) 구름님 12-03 5063 0
196 [QT/X11] QWT for qt android (1) 구름님 03-07 6536 1
195 [QT/Embedded] QTcpSocket사용 시 플러그 뽑힘 증상 체크 방법 요원009 11-13 10660 0
194 [QT/Win32] QML 에서 CustomModule 을 import 하여 사용하기 tmdwn 05-18 6144 0
193 [QT/Embedded] Qt update함수/repaint함수 사용법좀 알려주세여.. (1) 잉농 05-14 5919 0
192 [QT/Embedded] C++ Exception을 활용한 런타임 콜스택 정보 얻기 (1) korone 04-01 6258 0
191 [QT/Embedded] Qt 5.4.1 raspberry Pi 프로그램 개발하기 (5) 구름님 03-31 20902 1
190 [QT/Win32] Qt 다국어 처리 (2) korone 03-17 12559 0
189 [QT/Win32] signal to signal devilqoo 02-13 5573 0
188 [QT/Win32] Qt x64 바이너리 제공 사이트 (1) 인라이… 02-12 5517 1
187 [QT/Embedded] 우분투 Qt5 크로스 컴파일 (14/11/26 2차 수정) (9) 김아무… 11-12 15515 0
186 [QT/Embedded] Qt 5.3.2에서 Mouse Double Click시 이벤트 문제 (2) korone 11-11 5570 0
185 [QT/Embedded] QtWinExtras korone 11-11 5612 0
184 [QT/Win32] Qt 코딩 스타일 (편집 편) (4) devilqoo 10-22 10103 0
183 [QT/Win32] Qt와 C++11 (2) devilqoo 10-12 10459 1
182 [QT/Win32] Qt 에서의 이벤트 처리 (5) devilqoo 10-09 9989 0
181 [QT/Win32] QList와 QVector의 비교. (2) devilqoo 10-02 7227 0
180 [QT/Win32] Qt에서 사용되는 컨테이너들을 정리해 보았습… (4) devilqoo 10-01 8189 0
179 [QT/X11] qmake DEFINES 변수에 공백문자가 포함된 값을 설… (1) 별님 09-25 5195 0
178 [QT/Win32] 데이터 압축 관련 qCompress(), qUncompress() (9) 구름님 09-16 5804 0
177 [QT/Win32] QML 로 One-Source Multi-Platform (iOS, Android) 실행 tmdwn 09-03 7260 0
176 [QT/Win32] QML 로 iOS Application 제작하기 tmdwn 09-02 7216 0
175 [QT/Win32] QML 로 Android Application 제작하기 (4) tmdwn 09-02 7672 2
174 [QT/X11] qt에서 메모리 조작하기. (2) 나무나… 07-25 8046 0
173 [QT/Win32] Q_DECLARE_FLAGS 매크로 (2) 구름님 07-11 6500 2
172 [QT/Win32] Q_PROPERTY 매크로 (6) 구름님 07-09 8932 2
171 [QT/Win32] Q_INTERFACE 매크로에 대해.. (4) 구름님 07-08 6307 2
170 [QT/Win32] windeployqt.exe라는 프로그램이 있습니다. (4) 구름님 07-07 12581 1
169 [QT/X11] Qt App을 Mac Appstore에 올리기 (3) korone 07-02 7913 0
 1  2  3  4  5  6  7  


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