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.