Seite 1 von 1

TreeWidget und Drag Objekt

Verfasst: 4. September 2008 21:02
von WingMan
Hallo,
stehe mal wieder vor einem Problem :evil:
Ich habe ein TreeWidget welches Drags unterstützt. Nun möchte ich gerne bei diesem Objekt eigene MimeTypes definieren.
Ich versuche das mittels überschreiben von "mousePressEvent(event)". Da ich ja aber nicht alles neu implementieren möchte (aufklappen der Trees beim click etc.) , sondern nur das DragObejekt bzw MimeType, rufe ich zuvor "super(event)" auf. Soweit so gut.
Wie komme ich jetzt aber an das (durch super) erzeugt DragObjekt?
Suche schon eine halbe Eweigkeit in der API ohne fündig zu werden, daher wäre ich über ein wenig Hilfe sehr dankbar :lol:

Viele Grüße
WingMan

Verfasst: 5. September 2008 17:56
von WingMan
Bleibt mir denn bei diesem Problem nichts anderes übrig als alle "Maus-Funktionen" wie das aufklappen des TreeWidgets selbst zu implementieren nur um einem Drag-Objekt eigene MimeTypes anzuhängen????

Wäre wirklich sehr dankbar, wenn mir das jemand ersparen würde :D

Viele Grüße
WingMan

Verfasst: 5. September 2008 18:08
von upsala
Ich würde einfach mal hier anfangen. Dort ist dann auch ein schönes Beispiel für Drag- und Drop.

Verfasst: 6. September 2008 20:33
von sigvdr
Hallo,
Da ich ja aber nicht alles neu implementieren möchte (aufklappen der Trees beim click etc.)
Was soll da neu implementiert werden ?

Bei mir habe ich das so: ( Drag startet erst nach Drücken und Ziehen der Maus )

Code: Alles auswählen

void QDragTableView::mousePressEvent(QMouseEvent *event){
	if (event->button() == Qt::LeftButton)
		dragStartPosition = event->pos();
	QTableView::mousePressEvent(event);
	return;
}

void QDragTableView::mouseMoveEvent(QMouseEvent *event){

	if (!(event->buttons() & Qt::LeftButton)) 
		return;
	if ((event->pos() - dragStartPosition).manhattanLength() < QApplication::startDragDistance())
		return;
  ....
  ....
  ....
Gruß Sig