Seite 1 von 1

QTreeWidget, parent child, Drag & Drop

Verfasst: 4. November 2007 13:38
von Limexx
Hi@all

Ich habe da so 1,2 kleine Probleme (Große) mit Drag & Drop.

Ich erkläre erstmal was ich vorhabe:

Sagen wir mal ich habe 2x QTreeWidget (bzw meine eigenen unter Klasse),

TreeWidget1 hat den header an Stelle 0 "Orignal View"
TreeWidget2 hat den header an Stelle 0 "Loaded Elements"

bei 1 ist Drag&Drop erlaubt
bei 2 ist nur Drag erlaubt

Nun will ich aus TreeWidget2 ein Element in TreeWidget1 ziehen, und in dem Moment wo ich die Maustaste loslasse und das "QTreeWidgetItem2" einem anderes "QTreeWidgetItem1" fällt möchte ich eine Abfrage starten, welche mir das vergleicher beider "QTreeWidgetItems" erlaubt.

Das war die 1ste Frage,

Und die 2te Frage ist

wieso funktioniert hier der Drop:

Code: Alles auswählen

	if(this->headerItem()->text(0)=="Original View")
	{
		QTreeWidget::dropEvent(event);
		if(event->mimeData()->hasText())
		{
			emit status(QString("has Text : ").append(this->headerItem()->text(0)).append(" and Drop ist Accepted"),1000);
		}
		else
		{
			emit status("mimeData has no text",1000);
		}
	}
Und hier funktioniert der Drop nicht

Code: Alles auswählen

	if(this->headerItem()->text(0)=="Original View")
	{
	
		if(event->mimeData()->hasText())
		{
			QTreeWidget::dropEvent(event);
			emit status(QString("has Text : ").append(this->headerItem()->text(0)).append(" and Drop ist Accepted"),1000);
		}
		else
		{
			emit status("mimeData has no text",1000);
		}
	}
Obwohl der Statustext beide male angezeigt wird

Gruss Limexx

Verfasst: 6. November 2007 20:25
von Limexx
push

Verfasst: 7. November 2007 22:41
von Limexx
nun kann ich mir die Frage selber beantworten... und zwar muss man folgendes machen :

Code: Alles auswählen

	QTreeWidgetItem *target = this->itemAt(event->pos());
so hat man das Target und in der event->mimeData()->text(); zb die source