C++ 鼠标悬停时突出显示树梢的项目
我有一个支持拖放的应用程序 我试图在拖放操作中突出显示一个项目。在拖放文件之前,我想突出显示目标项C++ 鼠标悬停时突出显示树梢的项目,c++,qt,drag-and-drop,qtreewidgetitem,C++,Qt,Drag And Drop,Qtreewidgetitem,我有一个支持拖放的应用程序 我试图在拖放操作中突出显示一个项目。在拖放文件之前,我想突出显示目标项 void TreeView::dragMoveEvent(QDragMoveEvent * event) { qDebug() << "On Drag Move Event"; const QMimeData* mimeData = event->mimeData(); event->setDropAction(Qt::CopyAction);
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();
}
void TreeView::dragmovevent(qdragmovevent*event)
{
qDebug()mimeData();
事件->setDropAction(Qt::CopyAction);
如果(mimeData->hasURL())
{
QTreeWidgetItem*item=itemAt(事件->位置());
如果(项目){
qDebug()setDropAction(Qt::CopyAction);
事件->AcceptProposeAction();
}
其他的
事件->忽略();
//dropSite=event->answerRect();
//事件->AcceptProposeAction();
}
有趣的是,它突出显示了项目,但之后..这就像DnD允许设置模型,并在他为整体行为保留该模型之后。我期待在DnD期间突出显示,但在正常使用期间没有。正常使用,我的意思是,只要让鼠标越过任何文件到DnD
DnD需要突出显示(内容通过clich选择并移动到项目中/从项目中移动)
我还有3列,但只有第1列中的项目突出显示
当前代码将突出显示项目,但在DnD之后,即使在dragMoveEvent中完成,也不会在期间
有什么想法吗