1 2 3 4 5 6 7 | 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)); |
1 2 3 4 5 6 7 8 9 | Text { text: musicPlayer.currentSong.artist } Button { onClicked: musicPlayer.nextSong() } Slider { value: musicPlayer.volume } |
1 2 3 4 5 | class MusicPlayer : public QObject { Q_INVOKABLE void setVolume( int volume) { m_backend->setVolume(volume); } } |
1 2 3 4 5 6 7 8 9 | property int volume: 50 Slider { value: volume onRightPressed: { volume = Math.min(100, volume + 5); musicPlayer.setVolume(volume); } } |
1 2 3 4 5 6 7 8 9 10 11 12 | 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; } |
1 2 3 4 5 | Slider { value: musicPlayer.volume onRightPressed: musicPlayer.increaseVolume() } |
2020.06.23 10:50
2020.06.23 12:13
2021.11.10 09:17