mickey
10th March 2006, 12:07
Hi,
I'm trying drag (and drop) of a text insert in a qlabel. But I see that drag event isn't called. Why? (maybe beacause on mywidget starts mouseMoveEvent also?)
Thanks
MyWidget::MyWidget( QWidget *parent, const char *name, const QGLWidget* shareWidget)
: QGLWidget ( parent, name, shareWidget) {
this->setAcceptDrops(true);
label = new QLabel("prove", this);
}
void MyWidget::startDrag() {
printf("start drag\n");
QDragObject *d = new QTextDrag (this->label->text(), this);
d->dragCopy();
//do NOT delete d
}
void MyWidget::dragEnterEvent(QDragEnterEvent* event) {
printf("start drag enter event\n");
event->accept(QTextDrag::canDecode(event) || QImageDrag::canDecode(event));
}
void MyWidget::dropEvent(QDropEvent* event) {
printf("start drop event\n");
QImage image;
QString text;
if (QImageDrag::decode(event, image)) {
//insertImageAt(image, event->pos());
}
else if (QTextDrag::decode(event, text)) {
//insertTextAt(text, event->pos());
}
}
I'm trying drag (and drop) of a text insert in a qlabel. But I see that drag event isn't called. Why? (maybe beacause on mywidget starts mouseMoveEvent also?)
Thanks
MyWidget::MyWidget( QWidget *parent, const char *name, const QGLWidget* shareWidget)
: QGLWidget ( parent, name, shareWidget) {
this->setAcceptDrops(true);
label = new QLabel("prove", this);
}
void MyWidget::startDrag() {
printf("start drag\n");
QDragObject *d = new QTextDrag (this->label->text(), this);
d->dragCopy();
//do NOT delete d
}
void MyWidget::dragEnterEvent(QDragEnterEvent* event) {
printf("start drag enter event\n");
event->accept(QTextDrag::canDecode(event) || QImageDrag::canDecode(event));
}
void MyWidget::dropEvent(QDropEvent* event) {
printf("start drop event\n");
QImage image;
QString text;
if (QImageDrag::decode(event, image)) {
//insertImageAt(image, event->pos());
}
else if (QTextDrag::decode(event, text)) {
//insertTextAt(text, event->pos());
}
}