这是我的PageThree.qml文件
import QtQuick 2.0
import QtMultimedia 5.9
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.3
import QtQuick.Controls.Styles 1.4
Rectangle {
property alias songModel: song_list_view.model;
property alias playlistSongs: music_player.playlist
Audio {
id: music_player;
autoPlay: false;
}
}
当我尝试像这样在我的core.qml文件中使用PageThree.qml文件
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.11
import QtMultimedia 5.9
import QtQuick.Controls.Styles 1.4
import "qrc:/stack_pages/"
import "qrc:/images/"
Window {
PageThree {
songModel: manager.getSongListByAlbumName(globalName)
playlistSongs.addItems:
manager.getSongUrl(globalName)
}
}
我收到以下错误Cannot assign to non-existent property "addItems"
。尽管我可以设置PageThree songModel,但是我无法通过添加项将值分配给播放列表。方法manager.getSongUrl(globalName)返回QList<Qurl>
,即使我可以访问它,我也需要将其分配给播放列表,但是我无法通过添加项设置播放列表项,如何解决此错误?为什么我无法访问PageThree的播放列表属性?
答案 0 :(得分:0)
这是因为addItems
不是属性,而是方法See Docs
您可以在完成时分配:
PageThree {
Component.onCompleted: addItems(manager.getSongUrl(globalName))
}
或者也许您有一个信号来告知列表已更改,并根据该信号进行分配。
专业提示::如果您摆弄一点,也可以将经理列表直接分配给播放列表本身,但是我不确定所涉及的所有类型>