繁体   English   中英

无法分配给QML中不存在的属性

[英]Cannot assign to non-existent property in QML

这是我的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的播放列表属性?

这是因为addItems不是属性而是方法, 请参见Docs。

您可以在完成时分配:

PageThree {

    Component.onCompleted: addItems(manager.getSongUrl(globalName))
}

或者,也许您有一个信号告诉列表已更改,并根据该信号进行分配。

专家提示:如果您摆弄一点,也可以将经理列表直接分配给播放列表本身,但是我不确定所涉及的所有类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM