I just had to reimplement dragMoveEvent() and it worked fine, thanks.
Now I'm having another 'problem'. In my project I'm trying to drag and drop from one QTableWidget to another but I can't quite get it right. The dragEnterEvent acknowledges when I've entered another QTableWidget but thats about it. Here's what I'm working with:
{
if (test != 0)
{
if ( event->source() == this ) // same table, move entry
{
event->setDropAction( Qt::MoveAction );
event->accept();
}
else // different table, add entry
{
printf("Different table\n");
event->acceptProposedAction();
}
source = itemAt(event->pos());
source->setText(itemAt(event->pos())->text());
}
}
{
printf("I'm in dropEvent\n");
itemAt(event->pos())->setText(source->text());
if(source != itemAt(event->pos()))
source->setText("");
event->acceptProposedAction();
}
{
event->setDropAction(Qt::MoveAction);
event->accept();
}
void table_widget::dragEnterEvent(QDragEnterEvent *event)
{
QTableWidgetItem* test = itemAt(event->pos());
if (test != 0)
{
if ( event->source() == this ) // same table, move entry
{
event->setDropAction( Qt::MoveAction );
event->accept();
}
else // different table, add entry
{
printf("Different table\n");
event->acceptProposedAction();
}
source = itemAt(event->pos());
source->setText(itemAt(event->pos())->text());
}
}
void table_widget::dropEvent(QDropEvent *event)
{
printf("I'm in dropEvent\n");
itemAt(event->pos())->setText(source->text());
if(source != itemAt(event->pos()))
source->setText("");
event->acceptProposedAction();
}
void table_widget::dragMoveEvent(QDragMoveEvent *event)
{
event->setDropAction(Qt::MoveAction);
event->accept();
}
To copy to clipboard, switch view to plain text mode
Any suggestions?
Bookmarks