Невозможно назначить несуществующее свойство в QML - PullRequest
0 голосов
/ 12 декабря 2018

это мой файл 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;


        }

}

Когда я пытаюсь использовать файл PageThree.qml в моем файле core.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?

1 Ответ

0 голосов
/ 12 декабря 2018

Это потому, что addItems это не свойство, а метод См. Документы

Вы можете назначить по завершении:

PageThree {

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

Или, возможно, у вас естьсигнал о том, что список изменился, и назначьте этому сигналу.

Pro-tip: Если вы немного поиграете, то также может быть возможно напрямую назначить список менеджера списку воспроизведениясам, но я не уверен насчет всех типов

...