qml之從零開始編寫網易雲音樂目錄
阿新 • • 發佈:2018-11-10
預覽:
雙擊qml的model 實現音樂播放以及歌曲資訊,播放進度
一、設定上下文屬性,使c++類物件能夠被qml呼叫
Player mPlayer;
engine.rootContext()->setContextProperty("Player",&mPlayer);
二、在player類中增加訊號函式
signals:
void currentPositionChanged(QString);
void updateTotalTime(int);
void musicChanged(QString);
三、在qml檔案中關聯qml的函式
PlaySlider{ id:sliderWindow anchors{ left: stepForward.right leftMargin: 10*dp right: collectBtn.left rightMargin: 10*dp top:parent.top topMargin: 1*dp bottom: parent.bottom bottomMargin: 1*dp } function totalTime(time_){ //console.log("totalTime: "+time_); sliderWindow.duringTime = time_; } function setCurrentMusic(musicName){ //console.log("CurrentMusic: "+musicName); sliderWindow.musicName = musicName; } function setPosition(position_){ sliderWindow.musicDuringText = position_; //console.log(Player.currentPosition); sliderWindow.currentPositionValue = (Player.currentPosition*100/sliderWindow.duringTime); } Component.onCompleted: { Player.updateTotalTime.connect(totalTime); Player.currentPositionChanged.connect(setPosition); Player.musicChanged.connect(setCurrentMusic); } }