我的应用程序带有支持Drag n Drop的treeWidget。
我正在尝试在拖放操作期间突出显示一个项目。在拖动文件并放弃文件之前,我想突出显示目标项目。
void TreeView::dragMoveEvent(QDragMoveEvent * event)
{
qDebug() << "On Drag Move Event";
const QMimeData* mimeData = event->mimeData();
event->setDropAction(Qt::CopyAction);
if (mimeData->hasUrls())
{
QTreeWidgetItem *item = itemAt(event->pos());
if(item) {
qDebug() << "itemat: " << item->text(0);
setStyleSheet(QString::fromUtf8("QTreeWidget::item:hover {\n"
"background-color: rgb(123, 45, 67);\n"
"}"));
}
event->setDropAction(Qt::CopyAction);
event->acceptProposedAction();
}
else
event->ignore();
// dropSite = event->answerRect();
// event->acceptProposedAction();
}
有趣的事情,它突出了项目,但之后..就像DnD允许设置模型,并在他保持整体行为之后。我期待DnD期间的亮点,但在正常使用期间不会。通过正常使用,我的意思是让鼠标越过任何文件到DnD。
DnD预计会突出显示(内容由陈词滥调选择并移动到项目中)
我也有3列,但第1列中只有项目突出显示。
当前代码突出显示项目,但在DnD之后,即使在dragMoveEvent中完成了
有什么想法吗?