У меня есть приложение, которое содержит ListModel. Я написал класс C ++, производный от QAbstractListModel.
Модель списка QML выглядит как
// SelectedStepsModel.qml
import QtQuick 2.0
ListModel {
ListElement{
step_name:""
step_icon:""
, а класс C ++ выглядит как
class ProductModel : public QAbstractListModel
{
Q_OBJECT
Q_PROPERTY(QString product_name READ get_product_name)
public:
enum {
StepNameRole = Qt::UserRole,
StepIconRole,
...
В основном
...
ProductModel* product_model = new ProductModel();
context->setContextProperty("product_model", QVariant::fromValue(product_model));
...
В одном из файлов (где модель QML заполняется некоторыми функциями в QML) я хочу заменить эту логику на вновь созданную модель (поскольку модель содержит все данные).
// some other file
SelectedStepsModel {
id: selected_model
}
selected_model = product_model
Обратите внимание: здесь selected_model - это ListModel, а product_model - это QAbstractListModel. Но selected_model = product_model терпит неудачу.
Правильно ли я делаю, как правильно назначить QAbstractListModel для ListModel.
Заранее спасибо.