在QTreeView中,我想通过拖放来复制行。相应的Drag&丢弃设置如下:
this->setDragDropMode( QAbstractItemView::DragDrop );
this->setDropIndicatorShown( true );
这对于由QTreeView可视化的底层QStandardItemModel的列很有用。但并非所有模型列都可视化(参见Hide future columns of QStandardItemModel in QTreeView):
void MyViewClass::columnCountChanged(int p_nOldCount , int p_nNewCount )
{
QTreeView::columnCountChanged( p_nOldCount, p_nNewCount );
for ( int i = MyViewClass::m_nColumnType; i < p_nNewCount; ++i )
{
setColumnHidden( i, true );
}
}
如果QTreeView无法显示所有列,我如何通过拖放QTreeView来复制QStandardItemModel的整行?
答案 0 :(得分:0)
找到解决方案:
必须继承/实现QAbstractModel函数:
虽然mimeData需要对数据进行编码,但dropMimeData需要对数据进行解码,并且需要插入带有数据的新行/列。