TreeWidget und Drag Objekt

Alles rund um die Programmierung mit Qt
Antworten
WingMan
Beiträge: 29
Registriert: 30. August 2008 18:03

TreeWidget und Drag Objekt

Beitrag 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
WingMan
Beiträge: 29
Registriert: 30. August 2008 18:03

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich würde einfach mal hier anfangen. Dort ist dann auch ein schönes Beispiel für Drag- und Drop.
sigvdr
Beiträge: 100
Registriert: 1. Juli 2008 19:29

Beitrag 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
Antworten