FAQ Qt
La gestion du glisser-déposer avec Qt est très simple et s'effectue à l'aide des méthodes suivantes :
De même, il faut redéfinir les événements suivants :
Glisser-déposer d'images du bureau vers une application
#include
<QtGui>
#include
<QtGui/QApplication>
#include
<QtGui/QLabel>
class
DragImg : public
QWidget
{
Q_OBJECT
private
:
QLabel
*
m_labelImage;
public
:
DragImg()
{
this
->
m_labelImage =
new
QLabel
(this
);
this
->
m_labelImage->
setFixedSize(320
,240
);
this
->
m_labelImage->
setAcceptDrops(true
);
this
->
m_labelImage->
setScaledContents(true
);
}
protected
:
void
dragEnterEvent(QDragEnterEvent
*
event)
{
if
(event->
mimeData()->
hasUrls())
{
QFileInfo
fileInfo(event->
mimeData()->
urls().first().toLocalFile());
QString
suffix =
fileInfo.completeSuffix();
suffix =
suffix.toLower();
if
( suffix ==
"png"
||
suffix ==
"bmp"
||
suffix ==
"jpg"
)
{
event->
acceptProposedAction();
}
}
}
void
dropEvent(QDropEvent
*
event)
{
QList
<
QUrl
>
urls =
event->
mimeData()->
urls();
if
(urls.isEmpty())
return
;
QString
fileName =
urls.first().toLocalFile();
if
(fileName.isEmpty())
return
;
this
->
m_labelImage->
setPixmap(QPixmap
(fileName));
}
}
;
#include
"main.moc"
int
main(int
argc, char
*
argv[])
{
QApplication
a(argc, argv);
DragImg w;
w.show();
return
a.exec();
}
Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2006 - 2017 Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.