如何将 removeRows 与 QStringListModel 一起使用

How to use removeRows with QStringListModel

我有一个 QStringListModel 可以正常工作,但是我需要从它 从 QML.

中删除所有行

我希望 Qt 文档中的 removeRowsfunction 能像那样工作,但我不知道如何使用它 属性。

removeRows(int row, int count, const QModelIndex &parent = QModelIndex())

我试过这样使用它:

myModel.removeRows(1, 1)

但是我遇到了错误:

qrc:/Logger.qml:63: TypeError: Property 'removeRows' of object QStringListModel(0x337350) is not a function

有人可以解释一下如何正确使用 removeRows 吗?谢谢

removeRows() 不能从 QML 调用。解决方案是通过创建一个新的 class 并覆盖该方法使其可调用:

class StringListModel: public QStringListModel{
    Q_OBJECT
public:
    Q_INVOKABLE bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()){
        return QStringListModel::removeRows(row, count, parent);
    }
};

下面link有个例子