Bonjour, apres quelques recherches sur le net, et sur ce forum, je me permets de poster mon problème.
J'essaye de réaliser un drag'n drop basique entre un QTreeView et un QListView.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// pour le QTreeView,
 
DiskExplorer::DiskExplorer(QWidget* parent)
    :   QTreeView(parent)
{
    setDragEnabled(true);
    ...
}
 
// pour le QListView
 
Archiver::Archiver(QWidget* parent)
    :   QListWidget(parent)
{
    setAcceptDrops(true);
}
 
void    Archiver::dragEnterEvent(QDragEnterEvent *event)
{
    if (event->mimeData()->hasFormat("text/uri-list"))
    {
        qDebug() << "entering...";
        event->acceptProposedAction();
    }
    event->ignore();
}
 
void    Archiver::dropEvent(QDropEvent *event)
{
    qDebug() << "ok !";
}
Mon problème est que je recois bien l'évènement dragEnterEvent, mais le dropEvent n'est pas appelé. Bizarre, non ? J'ai pourtant repris les exemples de Qt.
De plus, j'ai le symbole "interdit" au drag dans la zone du QListView.

Merci pour vos éventuelles futures réponses.