munna
24th July 2006, 14:14
Hi,
I have started to implement a drag n drop operation from QListWidget to QTreeWidget. I have implemented the drag operation but it is not working. Here is my code.
void NameListWidget::mousePressEvent(QMouseEvent *event)
{
if(event->buttons() & Qt::LeftButton){
startPos = event->pos();
}
QListWidget::mousePressEvent(event);
}
void NameListWidget::mouseMoveEvent(QMouseEvent *event)
{
if(event->buttons() & Qt::LeftButton){
int xDiff = startPos.x() - event->pos().x();
if(xDiff > 3 ){//drag only if the movement is towards left
startDrag();
}
}
QListWidget::mouseMoveEvent(event);
}
void NameListWidget::startDrag()
{
QListWidgetItem * items = currentItem();
if(item){
QMimeData *mimeData = new QMimeData;
mimeData->setText(item->text());
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->setPixmap(QPixmap(":/images/personsmall.png"));
drag->setHotSpot(QPoint(drag->pixmap().width()/2,
drag->pixmap().height()));
drag->start();
}
}
When I start dragging the pixmap does not appear. Can someone please tell what can be the problem ?
Thanks a lot.
I have started to implement a drag n drop operation from QListWidget to QTreeWidget. I have implemented the drag operation but it is not working. Here is my code.
void NameListWidget::mousePressEvent(QMouseEvent *event)
{
if(event->buttons() & Qt::LeftButton){
startPos = event->pos();
}
QListWidget::mousePressEvent(event);
}
void NameListWidget::mouseMoveEvent(QMouseEvent *event)
{
if(event->buttons() & Qt::LeftButton){
int xDiff = startPos.x() - event->pos().x();
if(xDiff > 3 ){//drag only if the movement is towards left
startDrag();
}
}
QListWidget::mouseMoveEvent(event);
}
void NameListWidget::startDrag()
{
QListWidgetItem * items = currentItem();
if(item){
QMimeData *mimeData = new QMimeData;
mimeData->setText(item->text());
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->setPixmap(QPixmap(":/images/personsmall.png"));
drag->setHotSpot(QPoint(drag->pixmap().width()/2,
drag->pixmap().height()));
drag->start();
}
}
When I start dragging the pixmap does not appear. Can someone please tell what can be the problem ?
Thanks a lot.