Drag und Drop mit ListView

Alles rund um die Programmierung mit Qt
Antworten
mostrich
Beiträge: 5
Registriert: 10. November 2006 15:41
Wohnort: Mannheim

Drag und Drop mit ListView

Beitrag von mostrich »

Hallo.

Ich entwickle eine Anwendung unter Qt3 und habe folgendes Problem:

Mittels Designer habe ich ein Hauptfenster (QMainWindow) erzeugt, welches
aus Menubar, Toolbar und Statusbar besteht. Als zentrales Widget habe ich
ein QListView-Objekt.
Nun möchte ich die QListViewItems mittels Drag und Drop verschieben.
Dazu will ich die Maus Events abfangen. Testweise habe ich die
Funktion mousePressEvent() implementiert:

Code: Alles auswählen

void Anwendung::mousePressEvent( QMouseEvent* e )
{
    if ( e->button == Qt::LeftButton )
      QTextStream(stderr) << "left" << endl;
    QMainWindow::mousePressEvent( e );
}
Beim Testen erhalte ich die Meldung nur, wenn ich die Maus im Hauptfenster-Bereich bewege, aber nicht im QListView-Bereich.

Ich habe die Vermutung, dass ich, wenn ich die Mausevents des QListView-Objektes abfangen will, diese Klasse ableiten muss.
Dann habe ich allerdings ein Problem, mit dem Einbinden in den Designer.

Wolfgang
Sephral
Beiträge: 201
Registriert: 1. Februar 2006 09:40
Kontaktdaten:

Re: Drag und Drop mit ListView

Beitrag von Sephral »

mostrich hat geschrieben: Ich habe die Vermutung, dass ich, wenn ich die Mausevents des QListView-Objektes abfangen will, diese Klasse ableiten muss.
Dann habe ich allerdings ein Problem, mit dem Einbinden in den Designer.
Das Ableiten ist prinzipiell eine gute Idee.
Wenn du Deiner abgeleitete Klasse gebaut hast, dann einfach im Designer Rechtsklick auf das Widget und "Promote to custom class"...und dann den Namen Deiner abgeleiteten Klasse eingeben.

Wie es beim QListView ist, hab ich gerade nicht im Kopf, aber das QListWidget hat von haus aus schon ein paar Drag&Drop-Funktionen (muss man noch im Designer oder direkt im code aktivieren). Kommt einfach darauf an, was du genau damit anstellen willst.


Ciao,
Sephral
Antworten