2012-10-15 53 views
1

我有一個Qml文本輸入作爲元素之一的列表視圖。我用C++模型來擴充列表視圖。現在我想更改C++模型,如果用戶在qml的文本輸入中輸入任何值。如何從QML更改C++模型?

我該怎麼做?

+0

「模型」,你的意思是'QAbstractItemModel'?我問,因爲在某些情況下,您可以爲QML執行C++模型非常簡單。 – leemes

+0

是的,我從QAbstractItemModel派生了模型類... – Sandy

回答

2

您必須要麼在您的模型類創建插槽並調用它:

public slots: 
    setDataInModel(const int index, const QVariant &value); 

,並從該元素的QML代表調用它時,它已經被編輯過這樣的:

​​

您也可以創建Q_INVOKABLE方法,並以相同的方式從QML調用它們。

+0

我在QAbstractItemModel中看到了一個方法setItemData(const QModelIndex&index,&const QMap Sandy

+0

不幸的是,這個方法不是從QML自動調用的,你必須編寫槽或Q_INVOKABLE方法並自己調用它們。 – JuliusG

+0

確定....感謝您的幫助...... :) – Sandy