【问题标题】:Cannot assign to non-existent property in QML无法分配给 QML 中不存在的属性
【发布时间】:2018-12-12 12:38:55
【问题描述】:

这是我的 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 的属性?

【问题讨论】:

    标签: c++ qt qml qt5


    【解决方案1】:

    这是因为addItems不是属性而是方法See Docs

    您可以在完成时分配:

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

    或者,也许您有一个信号来告诉列表发生了变化并根据该信号进行分配。

    专业提示:如果您稍微摆弄一下,也可以直接将管理器列表分配给播放列表本身,但我不确定所有涉及的类型

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 2014-08-15
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多