Subj. Необходимо дать пользователю возможность перетаскивать item`ы из QTreeWidget'a, чтобы сохранялся текст, иконка и скрытый номер(нужно будет создавать QGraphicsItem) на QGraphicsView. Оба виджета - на одной форме. Но пока не получается даже отслеживать drop элемента на QGraphicsView. AcceptDrops установлен в true в конструкторе формы. Прочитал в документации статью про drag and drop, переопределил обработчики событий, но, похоже, mousePressEvent вообще не отслеживается, а dropEvent срабатывает только один раз. Может, кто-нибудь сталкивался с подобным?
void addcondition::dragEnterEvent ( QDragEnterEvent * event )
{
event->acceptProposedAction();
}
void addcondition::dropEvent ( QDropEvent * event )
{
if(m_ui->toolBox->currentIndex()==0)
{
scene.addText(event->mimeData()->text());
m_ui->gcond->setScene(&scene);
m_ui->gcond->show();
}
event->acceptProposedAction();
}
void addcondition::mousePressEvent( QMouseEvent * event)
{
if (event->button() == Qt::LeftButton)
{
QDrag *drag = new QDrag(this);
QMimeData *mimeData = new QMimeData;
if(m_ui->toolBox->currentIndex()==0)
mimeData->setText(m_ui->cond_view->currentItem()->text(0));
drag->setMimeData(mimeData);
Qt::DropAction dropAction = drag->exec();
}
}