QML删除从C ++创建的对象

时间:2017-09-06 06:10:15

标签: c++ qml

我创建了TreeView并通过调用一个函数从C ++端获取model数据,该函数返回一个指向QML的QStandardItemModel指针。

这是功能:

Q_INVOKABLE QStandardItemModel* getImgs(){
    QStandardItemModel* model = new QStandardItemModel;
    QHash<int, QByteArray> roles;
    roles[Qt::DisplayRole] = "name_role";
    model->setItemRoleNames(roles);
    foreach (QString k, mImgs.keys()) {
        QStandardItem* item = new QStandardItem();
        item->setText(k);
        foreach (QString pic, mImgs.value(k)) {
            QStandardItem* sub = new QStandardItem();
            sub->setText(pic);
            item->appendRow(sub);
        }
        model->appendRow(item);
    }
    return model;
}
  • Q1: 有没有办法让QML GC删除QStandardItemModel对象和子对象。
  • Q2: QStandardItemModel clear()可以释放儿童的记忆空间吗?
  • Q3: 关于使用QModelIndex currentIndex属性。例如。索引更改时,如何输出选择哪一行和深度?

0 个答案:

没有答案