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));
Text { text: musicPlayer.currentSong.artist } Button { onClicked: musicPlayer.nextSong() } Slider { value: musicPlayer.volume }
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); } }
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() }
2020.06.23 10:50
2020.06.23 12:13
어떤 데이터를 QML로 직접 다루는 것이아니라 UI 즉 QML로는 Invoke 역할을 하는 것이죠.. QML에서 데이터를 다루는 것은 반응성 및 성능면에서 좋지않을 것입니다.
2021.11.10 09:17
이해가 확 되네요. 좋은 자료 감사합니다
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 | 운영자 | 2019.01.05 | 86827 |
8 | z-order 를 컨트롤 하기위한 방법 | makersweb | 2015.05.13 | 6649 |
7 | QML내에서의 시그널, 슬롯 시스템 | makersweb | 2019.09.29 | 7111 |
6 |
Qml 기본 컴포넌트 강좌 (2)
[2] ![]() | makersweb | 2019.01.05 | 8745 |
5 |
QML 강좌 - 동적 Listing (ListView)
![]() | makersweb | 2019.06.01 | 10250 |
4 |
Qml 기본 컴포넌트 강좌 (1)
![]() | makersweb | 2019.01.03 | 12254 |
3 | QML과 QtQuick 모듈 개념과 기본 타입들 | makersweb | 2019.04.26 | 13535 |
2 |
Qml과 C++로 구현하는 GUI어플리케이션
![]() | makersweb | 2018.12.25 | 14197 |
1 |
QtCreator Design으로 GUI만들기 (QML로 만드는 Hello World -2)
[1] ![]() | makersweb | 2019.05.26 | 15167 |
QML이 화면 구성의 역할만 하는것이 아니고 cpp의 동작 함수들을 컨트롤 하는것이 좋은것인가요??