簡體   English   中英

QListView的默認選擇模型的所有權

[英]Ownership of default selection model of QListView

doc指出setModel將創建並設置一個新的選擇模型,替換之前使用setSelectionModel()設置的任何模型。 但是,舊的選擇模型不會被刪除,因為它可能在多個視圖之間共享。 如果不再需要,他們建議刪除舊的選擇模型。 這是否也適用於默認選擇模型?

不,您不需要手動刪除默認選擇模型。 默認選擇模型由視圖創建,它使用視圖作為父項。 因此,它將根據對象所有權被刪除(如果您不更改選擇模型的父級,則會自動刪除)。

您可以查看qt來源:

void QAbstractItemView::setModel(QAbstractItemModel *model)
{
    //...
    QItemSelectionModel *selection_model = new QItemSelectionModel(d->model, this);
}

暫無
暫無

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

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