한국어
Qt
 

 

//나쁜예: C++ 내에서 QML 객체 수정
QObject *artistLabel = rootItem->findChildren("artistLabel");
artistLabel->setProperty("text", m_currentSong->artist);
...
QObject *nextButton = rootItem->findChildren("nextButton");
connect(nextButton, SIGNAL(clicked()), this, &MusicPlayer::nextSong);
QObject *musicPlayer = nextButton->parent();
QMetaObject::invokeMethod(musicPlayer, "startAnimation", Q_ARG(QVariant, duration));
 
//좋은예: QML의 C++ 객체 사용
//QML은 UI계층으로만 구현해야 한다. 이해하기 쉽다.
Text {
    text: musicPlayer.currentSong.artist
}
Button {
    onClicked: musicPlayer.nextSong()
}
Slider {
    value: musicPlayer.volume
}
 
 
//나쁜예: QML 프로퍼티에 상태 저장
class MusicPlayer : public QObject {
    Q_INVOKABLE void setVolume(int volume) {
        m_backend->setVolume(volume);
    }
}
property int volume: 50
Slider {
    value: volume
    
    onRightPressed: {
        volume = Math.min(100, volume + 5);
        musicPlayer.setVolume(volume);
    }
}
 
//좋은예: C++ 프로퍼티에 상태 저장
//더빠르고 유지보수가 용이하다.
class MusicPlayer : public QObject {
    Q_PROPERTY(int volume READ volume NOTIFY ...)
    
public:
    int volume() const { return m_volume; }
    Q_INVOKABLE void increaseVolume() {
        m_volume = qMin(100, volume + 5);
        m_backend->setVolume(m_volume);
    }
private:
    int m_volume = EAR_BLEEDING_LOUD;
}
Slider {
    value: musicPlayer.volume
    
    onRightPressed: musicPlayer.increaseVolume()
}
 

 

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 85701
58 QML과 QtQuick 모듈 개념과 기본 타입들 makersweb 2019.04.26 13372
57 QML 전역 객체 (Global Object) file makersweb 2019.04.10 1045
56 tslib의 ts_calibrate를 응용해서 Qt로 터치보정기능 구현 file makersweb 2019.04.06 1360
55 GPU가 없는 장치에서 Qt Quick을 사용 makersweb 2019.04.02 1855
54 QTextCodec클래스를 사용하여 유니코드와 EUC-KR 변환 makersweb 2019.03.25 2886
53 qInstallMessageHandler를 이용한 디버그 메세지 출력 제어하기 makersweb 2019.02.25 1348
52 Qt5기반 독립 프로세스(out-of-process)로 동작하는 가상키보드(virtual keyboard) file makersweb 2019.02.24 2619
51 Qml 기본 컴포넌트 강좌 (4) - 모델 리스팅(Listing) file 운영자 2019.02.23 5286
50 Qt Bluetooth를 이용한 시리얼(Serial) 통신 file makersweb 2019.02.17 3548
49 Qml 기본 컴포넌트 강좌 (3) - 배치(positioning) 컴포넌트 file 운영자 2019.02.10 4855
48 QString 문자열 다루기 예제 운영자 2019.01.26 39936
47 Qt SQL을 이용한 가벼운 데이터베이스 다루기 [1] file 운영자 2019.01.23 6935
46 구글 클라우드 Speech-To-Text API를 Qt기반(C++, Qml)테스트 [7] file makersweb 2019.01.20 2615
45 QNetworkAccessManager를 통해 HTTP POST 하는 예제 makersweb 2019.01.17 4742
44 Qt응용프로그램 실행 시 콘솔창(터미널)같이 띄우기 file makersweb 2019.01.16 4471
43 안드로이드 가상장치 사용 file makersweb 2019.01.13 1067
42 Qml 기본 컴포넌트 강좌 (2) [2] file makersweb 2019.01.05 8606
41 Qml 기본 컴포넌트 강좌 (1) file makersweb 2019.01.03 12043
40 QtWayland와 ivi-compositor file makersweb 2018.12.27 2397
39 Qml과 C++로 구현하는 GUI어플리케이션 file makersweb 2018.12.25 13902