我有一个包含 ListModel 的应用程序。我编写了从 QAbstractListModel 派生的 C++ 类。
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 的正确方法是什么?
提前致谢。