2014-01-23 109 views
1

我想知道是否可以將自定義類添加到QStandardItem。我現在做這樣的事情是否可以將自定義類添加到QStandardItem?

QStandardItem* item_text= new QStandardItem(); 
item_text->setText(msg.c_str()); 

現在假設我有一類foo未從繼承的QVariant是有可能將其存儲在QStandardItem?如果是這樣,我將如何存儲它,然後檢索它?

回答

0

我相信你正在尋找的是

QStandardItem::setData (const QVariant & value, int role = Qt::UserRole + 1) 

您可以使用,這樣的事情:

QStandardItem item; 
    item.setData(QVariant(MyClass),Qt::UserRole); 

所以我認爲你需要做的就是強制轉換您的自定義類的QVariant (如上所示)並設置相應的角色,就像我使用UserRole一樣。 然後,在提取數據時,您可以將其轉換回您的自定義類。

您也可以通過遞增喜歡的東西在UserRole的保存:

item.setData(QVariant(MyClass),Qt::UserRole + 1000); 
    item.setData(QVariant(MyNewClass),Qt::UserRole + 1001); 

等。 希望它有幫助。 :)

相關問題