한국어
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 86122
39 Qml 기본 컴포넌트 강좌 (4) - 모델 리스팅(Listing) file 운영자 2019.02.23 5322
38 Qt기반의 오픈소스 프로젝트들 makersweb 2019.05.15 5452
37 Qt 어플리에이션 전역에 폰트 설정 makersweb 2018.01.24 5616
36 Windows환경에서 mingw로 Qt 5.10 정적(static)빌드 file makersweb 2018.02.01 5706
» Qml 및 C++개발시 유용한 팁 [3] makersweb 2018.04.06 5986
34 QQuickImageProvider 를 이용한 Qml 에서 이미지 표시 makersweb 2015.10.18 6005
33 Windows에서 라즈베리파이3 Qt 어플리케이션 개발 및 원격 실행 file makersweb 2018.02.23 6084
32 Qml 사용자 ScrollBar 구현 file makersweb 2015.07.24 6233
31 QtInstallerFramework로 온라인 설치프로그램(Online Installer)만드는 방법 [4] file makersweb 2019.05.28 6272
30 Qt Quick Controls 2사용 및 스타일 설정 file makersweb 2019.06.07 6272
29 QPushButton 의 커스텀 이미지버튼 file makersweb 2019.11.05 6417
28 z-order 를 컨트롤 하기위한 방법 makersweb 2015.05.13 6592
27 QLabel의 텍스트 색과 배경색을 변경 makersweb 2020.02.25 6653
26 QML내에서의 시그널, 슬롯 시스템 makersweb 2019.09.29 6973
25 Qt SQL을 이용한 가벼운 데이터베이스 다루기 [1] file 운영자 2019.01.23 6985
24 Qml 기본 컴포넌트 강좌 (2) [2] file makersweb 2019.01.05 8643
23 안드로이드 Qt 프로그래밍 file makersweb 2018.11.30 8839
22 QtConcurrent를 이용하여 쓰레드를 만드는 방법과 MapReduce file makersweb 2016.01.24 9472
21 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 10114
20 Qt애플리케이션 객체(QCoreApplication, QGuiApplication, QApplication) 에 대해서 makersweb 2019.11.11 10135