한국어
Qt
 

QML에는 JavaScript의 전역객체 뿐만아니라 내장된 QML전용의 몇가지 전역객체를 제공한다. QtQuick 모듈이 import되었다면 추가 import없이 QML에 로드 된 모든 전역객체 및 helper method, enum등을 사용할 수 있다.

 

"Qt"객체는 유틸리티 함수, 속성 및 Qt 네임 스페이스에서 사용 가능한 enum을 포함한 전역 객체이다. 인스턴스화를 할 필요없다. 즉, new를 이용한 객체를 생성하지 않는다. 이것을 사용하려면 다음의 예처럼 사용할 수 있다.

import QtQuick 2.12
import QtQuick.Controls 1.4

Text{
    text: Qt.md5("https://makersweb.net")
    font.pixelSize: 25
    font.family: fonts.currentText
    color: Qt.rgba(0, 0.5, 1, 1)
}

ComboBox{
    id: fonts
    width: 150
    model: Qt.fontFamilies()
}

Qt_object.png

Enums

Qt 라이브러리 전체에서 사용되는 enum을 사용할 수 있다. 예를 들면 Qt.Key_Q, Qt.Key_1, Qt.Key_Enter 처럼 key 타입을 나타내는 열거형등을 사용할 수 있다. 

 

동적객체 생성 함수

다음 함수를 사용하면 파일이나 문자열에서 QML 항목을 동적으로 만들 수 있다. 

Qt.createComponent(url)

Qt.createQmlObject(string qml, object parent, string filepath)

 

다음은 문자열에서 QML 항목을 동적생성하는 예제이다.

import QtQuick 2.12
import QtQuick.Window 2.12

Window {
    id: window
    visible: true
    width: 640
    height: 480

    // 문자열 QML코드
    property string qmlstring: {
        "
        import QtQuick 2.12

        Rectangle{
            anchors.centerIn: parent
            width: 300
            height: 100
            border.width: 1

            Text {
                id: title
                anchors.centerIn: parent
                font.pixelSize: 20
                text: qsTr('makersweb.net')
            }
        }
        "
    }

    Text{
        text: "click me"
        font.pixelSize: 25
        anchors.centerIn: parent

        MouseArea{
            anchors.fill: parent
            onClicked: {
                // 문자열 QML코드를 동적으로 생성
                Qt.createQmlObject(qmlstring, window)
            }
        }
    }
}

 

clickme.png

makersweb.png

 

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 7602
68 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 1996
67 QtInstallerFramework로 온라인 설치프로그램(Online Installer)만드는 방법 [4] file makersweb 2019.05.28 484
66 QtCreator Design으로 GUI만들기 (QML로 만드는 Hello World -2) file makersweb 2019.05.26 2112
65 QML에서 멀티 스레드(multithreading) 프로그래밍 file makersweb 2019.05.25 580
64 QtSerialPort를 사용한 시리얼(Serial)통신 makersweb 2019.05.21 1623
63 Qt기반의 오픈소스 프로젝트들 makersweb 2019.05.15 1050
62 Q_D매크로와 d-pointer file makersweb 2019.05.07 200
61 가상키보드(Qt Virtual Keyboard)를 사용하는 방법 [17] file makersweb 2019.05.03 1516
60 Windows에서 Qt D-Bus를 사용하여 프로세스간 통신(IPC) file makersweb 2019.05.02 710
59 QML과 QtQuick 모듈 개념과 기본 타입들 makersweb 2019.04.26 1881
» QML 전역 객체 (Global Object) file makersweb 2019.04.10 315
57 tslib의 ts_calibrate를 응용해서 Qt로 터치보정기능 구현 file makersweb 2019.04.06 351
56 GPU가 없는 장치에서 Qt Quick을 사용 makersweb 2019.04.02 356
55 QTextCodec클래스를 사용하여 유니코드와 EUC-KR 변환 makersweb 2019.03.25 511
54 qInstallMessageHandler를 이용한 디버그 메세지 출력 제어하기 makersweb 2019.02.25 285
53 Qt5기반 독립 프로세스(out-of-process)로 동작하는 가상키보드(virtual keyboard) file makersweb 2019.02.24 750
52 Qml 기본 컴포넌트 강좌 (4) - 모델 리스팅(Listing) file 운영자 2019.02.23 1203
51 Qt Bluetooth를 이용한 시리얼(Serial) 통신 file makersweb 2019.02.17 723
50 Qml 기본 컴포넌트 강좌 (3) - 배치(positioning) 컴포넌트 file 운영자 2019.02.10 815
49 QString 문자열 다루기 예제 운영자 2019.01.26 6444