QTreeWidget, parent child, Drag & Drop

Alles rund um die Programmierung mit Qt
Antworten
Limexx
Beiträge: 11
Registriert: 4. Januar 2007 15:50

QTreeWidget, parent child, Drag & Drop

Beitrag 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
Limexx
Beiträge: 11
Registriert: 4. Januar 2007 15:50

Beitrag von Limexx »

push
Limexx
Beiträge: 11
Registriert: 4. Januar 2007 15:50

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