簡體   English   中英

如何對QStandardItemModel進行子類化以使用我自己的Item類型?

[英]How to subclass QStandardItemModel to use my own Item type?

如何將QStandardItemModel子類化以使用自己的Item類型(例如,用MyItem代替QStandardItem )? 我的意思是我知道我必須創建一個類並繼承QStandardItemModel但是接下來呢? 如何使其在所有地方都使用MyItem 是的, MyItemQStandardItem之后繼承。

我認為這是不可能的。 您可以將QAbstractItemModel子類化以實現使用您的項目類的模型。

您也可以使用默認的QStandardItemModel,並使用QStandardItem::setData將其他對象添加到項目中。 由於它接受QVariant,因此您可以在其中添加任何值,事件QSharedPointer(您需要注冊適當的元類型)。

您不需要子類化模型,只需子類。 您需要的是:

class YourItem : public QStandardItem
{
// ...
public:
       virtual QStandardItem *clone() const;
};

QStandardItem *YourItem::clone() const
{
    return new YourItem(/*your constructor parameters to copy data if needed*/);
}

安裝模型時:

model->setItemPrototype(new MyItem());
ui->listView->setModel(model);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM