我需要在QTreeView中实现通过drag-n-drop移动的行,并显示行之间的拖放指示符.我想知道是否有一种方法来覆盖指示器绘图,因此它仅显示行之间的所有层次结构(不是项目周围的矩形),该行必须与整行(而不是一列)一样宽).
我想强调鼠标悬停在我的行上QTableWidget.
当我悬停鼠标时,只突出显示单个单元格.
我试过这种方法:
bool MyTabWidget::eventFilter(QObject *target, QEvent *event)
{
if( target == ui->MyTableWidget )
{
//Just to print the event type
qDebug() <<"EventType : "<<event->type();
}
}
Run Code Online (Sandbox Code Playgroud)
输出: EventType : 13.
`(13 = QEvent::Move)`
Run Code Online (Sandbox Code Playgroud)
我已经迷失了谷歌搜索.但没有得到任何适当的解决方案
有没有其他方法来满足我的要求(突出显示鼠标悬停的整行)?
请帮忙.预先感谢.
编辑:
请参考下面的屏幕截图更清晰.

这是我QTableWidget
想要在鼠标悬停时更改红色边框(已编辑)行的背景颜色.
我有一个从 QTreeView 扩展的类,它有一个从 QAbstractItemModel 扩展的数据模型,我想将一个项目拖到其中。
我的问题是,当我拖动时,我显示了拖动指示器,它显示了要放在项目上的矩形,或要在项目之间放置的线。但是,当我在数据模型中收到 dropMimeData 时,我看不到如何检索该数据。我注意到 QAbstractItemView 上有一个 dropIndicatorPosition,但它受到保护。所以我的问题是,我如何在 dropMimeData 中知道放置是在项目上、之前还是之后?