Seite 1 von 1

QTreeWidget:Click in leeren Bereich deselektiert Items nicht

Verfasst: 5. Mai 2008 15:00
von YouWe
Hallo,
ich habe folgendes Problem. Ich habe ein QTreeWidget dem ich mehrere QTreeWidgetItems hinzufüge (addTopLevelItem). Jetzt möchte ich einfach die Items selektieren (SingleSelection reicht). Das funktioniert auch. Wenn ich aber in einen leeren Bereich klicke erwarte ich, dass alle Items deselektiert werden. Das passiert leider nicht. Im QListWidget funktioniert das. Leider kann ich das nicht benutzen, da ich mehrere Spalten und eine Hierarchie benötige.
SelectionMode ist ExtendedSelection
SelectionBehavior ist Selected Raws
Kann mir jemand helfen?
Vielen Dank,
YouWe

Verfasst: 21. Mai 2008 10:45
von Mamba
Würde mich auch interessieren. Habe exakt das gleiche Problem!?

Verfasst: 21. Mai 2008 11:26
von Sephral
Falls es keine einfache Lösung gibt: mousePressEvent() abfangen, prüfen ob unter der Maus ein Item ist ( itemAt(const QPoint & p) ) und dann die Selection von Hand zurücksetzen.

Ciao,
Sephral

Verfasst: 21. Mai 2008 11:30
von macman
Da schau an, hatte das gleiche Problem (war mir dessen gar nicht bewusst), die gleiche Idee und es auch gleich realisiert :-)

Code: Alles auswählen

void MyTreeWidget::mousePressEvent(QMouseEvent* e)
{
	QTreeWidgetItem* item = itemAt(e->pos());
	if (!item)
		setSelection(frameGeometry(), QItemSelectionModel::Clear);

	QTreeWidget::mousePressEvent(e);
}

Verfasst: 21. Mai 2008 12:17
von upsala
Und wer setzt es in den Task-Tracker?

Verfasst: 21. Mai 2008 13:28
von Sephral
upsala hat geschrieben:Und wer setzt es in den Task-Tracker?
Du? :-)