한국어
Qt
 

QML and Qt Quick QML 전역 객체 (Global Object)

makersweb 2019.04.10 23:02 조회 수 : 1048

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 85855
79 QML에서 undefined를 확인하는 방법 makersweb 2017.11.29 1482
78 Qt Quick 3D 소개 makersweb 2019.11.09 1444
77 싱글터치 스크린 및 임베디드 리눅스 기반에서 Qt 터치입력 makersweb 2018.12.24 1397
76 QML과 JavaScript 의 숫자 관련 내장된 함수 makersweb 2021.03.28 1392
75 Qbs에 대한 소개와 설치하는 방법 makersweb 2019.10.09 1369
74 tslib의 ts_calibrate를 응용해서 Qt로 터치보정기능 구현 file makersweb 2019.04.06 1365
73 qInstallMessageHandler를 이용한 디버그 메세지 출력 제어하기 makersweb 2019.02.25 1352
72 QThread 및 QMutex 예제 makersweb 2021.01.12 1346
71 웹기반 Qt Design Viewer [2] file makersweb 2019.10.23 1297
70 많은 리소스를 사용하는 Qt프로젝트에서 고려해봐야 할 qmake 옵션 makersweb 2019.10.11 1236
69 재진입(Reentrancy) 및 스레드 안전성(Thread-Safety) makersweb 2020.04.19 1216
68 Qt 6의 비동기 API makersweb 2020.10.19 1198
67 Widgets(C++) 기반의 기본 스타일을 Dark 테마 및 Material 디자인 스타일로 바꾸기 file makersweb 2023.01.28 1130
66 Qt 스마트 포인터 (QSharedPointer, QScopedPointer, QPointer) makersweb 2022.08.18 1127
65 Qml에서 커튼효과 구현 예제 - Shader Effects file 운영자 2018.12.05 1107
64 ShaderEffect QML Type을 이용한 버튼 클릭 효과 file makersweb 2020.05.22 1086
63 안드로이드 가상장치 사용 file makersweb 2019.01.13 1072
» QML 전역 객체 (Global Object) file makersweb 2019.04.10 1048
61 QOpenGLWidget 을 투명하게 적용 file makersweb 2020.02.05 1031
60 QScopedPointer 소개 및 사용법 makersweb 2019.11.29 1024