将QAbstractItemModel*传递给C++类

Passing QAbstractItemModel* to C++ class

本文关键字:C++ QAbstractItemModel      更新时间:2024-09-24

考虑:

class Utility : public QObject
{
Q_OBJECT
public:
explicit Utility(QObject* parent = nullptr) : QObject(parent) {}
Q_INVOKABLE void test(const QAbstractItemModel* model)
{
}
};

通过qmlRegisterSingletonInstance("pgqt34", 1, 0, "Utility", &utility);main中设置

QML为:

import QtQuick 2.15
import QtQuick.Window 2.15
import pgqt34 1.0
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
ListModel {
id: listModel
}
onActiveChanged: {
Utility.test(listModel);
}
}

我一直为Qt 5.15.2编译获得Error: Unknown method parameter type: const QAbstractItemModel*,但Qt 6.x+工作正常。这里出了什么问题?

  1. 直通:

    Q_INVOKABLE无效测试(const QObject*obj({自动模型=qobject_cast(obj(;}

  2. QAbstractItemModel*声明为元类型。但是,我不确定这是否是一个有效的解决方案。

相关文章:
  • 没有找到相关文章