2011-12-02 50 views
0

如果我通过未通过代理连接到视图的模型删除行,则删除是正确的。只要插入代理模型,删除的行的内容将被删除,但行保留。任何想法为什么,以及如何解决它?
最奇怪的是,这是第一次,因为它只有当我试图删除第二行时,才会发生这种情况。在我的代理模型中,数据fnc只是一个包装:删除一行后留空行

QVariant File_List_Proxy::data(const QModelIndex &proxyIndex, int role) const 
{ 
    qDebug() << "Proxy::data index: " << proxyIndex; 
    //qDebug() << "Model::data index data: " <<index.data(); 
    return sourceModel()->data(mapFromSource(proxyIndex),role); 

} 

回答

1

我在插入时面临类似的行为。空行,只有第二次。

如果您的视图isSortingEnabled()为true,请关闭它,然后再编辑模型,删除或添加内容。奇怪的事情可能会发生,否则,如果你引用模型中的一些坐标,那可能会突然变得不正确。

+0

没有任何叫做isSortingEnabled的fnc。 – user336359

+0

bool \t {QTableView | TableView} :: isSortingEnabled()const。我的意思是这个功能。它被放置在你的视图类中,当你修改DisplayRole中的某些数据时,它就会完成它的工作。 –

+0

它是一个QListView – user336359