Drag&Drop mit QTreeView -> keine Selektion
Verfasst: 24. Mai 2007 11:26
Hallo,
ich möchte Drag&Drop in meinem modell-basierten QTreeView realisieren. Genaugenommen geht es darum, Elemente von einem Baum in einen anderen zu ziehen. Dazu habe ich die QTreeViews abgeleitet, und die entsprechenden Methoden überschrieben, rein datenmäßig klappt das Drag&Drop auch. Allerdings werden beim Rüberziehen des Elements nicht die Elemente im Zielbaums selektiert (d.h. gehighlightet), so wie man das eigentlich erwartet. Es gibt also kein Feedback, auf welchen Knoten man dass Element nun zieht, was sehr störend ist.
Was muss man tun? Muss im Zielbaum noch eine Weitere Methode überschrieben werden, oder ein bestimmtes Flag umgesetzt werden?
Dann hätte ich noch eine weitere Frage: Mein QTreeView ist mit einem Modell verknüpft, das von QAbstractItemModel abgeleitet ist. Wenn ich die Objekte in meiner Datenbasis anlege, bevor das Widget bzw. das Fenster angezeigt wird, funktioniert alles. Wenn ich danach allerdings meinen Datenbestand ändere auf den das Model ja mit den index()-Methoden usw. zugreift, wird der Baum nicht geupdatet. Woran liegt das? Es wird doch eigentlich bei fast jedem Klick das Model bemüht, die aktuellen Daten zu holen. Das Debugging zeigt auch, dass die neue Zeilenanzahl usw. eingelesen wird (rowCount), allerdings werden dann keine neuen Indexe erstellt (d.h. index() wird nicht aufgerufen, und somit auch die Zeilen nicht in der GUI angezeigt ???
Vielen Dank für eure Hilfe!
Thomas
ich möchte Drag&Drop in meinem modell-basierten QTreeView realisieren. Genaugenommen geht es darum, Elemente von einem Baum in einen anderen zu ziehen. Dazu habe ich die QTreeViews abgeleitet, und die entsprechenden Methoden überschrieben, rein datenmäßig klappt das Drag&Drop auch. Allerdings werden beim Rüberziehen des Elements nicht die Elemente im Zielbaums selektiert (d.h. gehighlightet), so wie man das eigentlich erwartet. Es gibt also kein Feedback, auf welchen Knoten man dass Element nun zieht, was sehr störend ist.
Was muss man tun? Muss im Zielbaum noch eine Weitere Methode überschrieben werden, oder ein bestimmtes Flag umgesetzt werden?
Dann hätte ich noch eine weitere Frage: Mein QTreeView ist mit einem Modell verknüpft, das von QAbstractItemModel abgeleitet ist. Wenn ich die Objekte in meiner Datenbasis anlege, bevor das Widget bzw. das Fenster angezeigt wird, funktioniert alles. Wenn ich danach allerdings meinen Datenbestand ändere auf den das Model ja mit den index()-Methoden usw. zugreift, wird der Baum nicht geupdatet. Woran liegt das? Es wird doch eigentlich bei fast jedem Klick das Model bemüht, die aktuellen Daten zu holen. Das Debugging zeigt auch, dass die neue Zeilenanzahl usw. eingelesen wird (rowCount), allerdings werden dann keine neuen Indexe erstellt (d.h. index() wird nicht aufgerufen, und somit auch die Zeilen nicht in der GUI angezeigt ???
Vielen Dank für eure Hilfe!
Thomas