[neues Problem] Daten in Explorer-mäßigem widget anzeigen
[neues Problem] Daten in Explorer-mäßigem widget anzeigen
hi,
mir wurde aufgetragen folgedes für hierarchisch sortierten Daten zu tun:
Ein widget, dass die Daten quasi wie "der Windows Explorer". Es soll 'Boxen' (entsprechend Verzeichnissen) und Daten (entsprechend Dateien) geben, Doppelklick auf eine Box öffnet diese, Doppelklick auf eine Date zeigt diese in einem anderen Widget an, man kann Daten und/oder Boxen von einer Box in eine andere verschieben oder markieren und eine "Aktion" damit ausführen, sowie neue Boxen erstellen können. Und jetzt kommt das eigentliche Problem. Das alles soll sozusagen frei sortierbar/verschiebbar sein wie der Desktop (maximal mit Raster) und nicht als Baumstruktur (QTreeWidget) angezeigt werden, sondern eben "wie das Ding in der Mitte vom Windows Explorer - mit den großen Symbolen, wo ein Doppelklick das im selben Fenster öffnet".
Hoff' man kann verstehen was gemeint ist...
Hat einer ne Idee wie man das machen könnt? QTreeWidgetItem wäre die Baumstruktur Ansicht; und die ist nicht die gewünschte...
Danke schon mal für euere Ideen
Elgrimm Esleborn
mir wurde aufgetragen folgedes für hierarchisch sortierten Daten zu tun:
Ein widget, dass die Daten quasi wie "der Windows Explorer". Es soll 'Boxen' (entsprechend Verzeichnissen) und Daten (entsprechend Dateien) geben, Doppelklick auf eine Box öffnet diese, Doppelklick auf eine Date zeigt diese in einem anderen Widget an, man kann Daten und/oder Boxen von einer Box in eine andere verschieben oder markieren und eine "Aktion" damit ausführen, sowie neue Boxen erstellen können. Und jetzt kommt das eigentliche Problem. Das alles soll sozusagen frei sortierbar/verschiebbar sein wie der Desktop (maximal mit Raster) und nicht als Baumstruktur (QTreeWidget) angezeigt werden, sondern eben "wie das Ding in der Mitte vom Windows Explorer - mit den großen Symbolen, wo ein Doppelklick das im selben Fenster öffnet".
Hoff' man kann verstehen was gemeint ist...
Hat einer ne Idee wie man das machen könnt? QTreeWidgetItem wäre die Baumstruktur Ansicht; und die ist nicht die gewünschte...
Danke schon mal für euere Ideen
Elgrimm Esleborn
Zuletzt geändert von Esleborn am 27. September 2005 22:28, insgesamt 2-mal geändert.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Re: Daten in einem Explorer-mäßigem widget anzeigen
Unter Qt3 gab es QIconView, bei Qt4 versuch es mit einem QListView oder QListWidget und dem entsprechenden ViewMode (QListView::setViewMode(QListView::IconMode)).Esleborn hat geschrieben:QTreeWidgetItem wäre die Baumstruktur Ansicht; und die ist nicht die gewünschte...
Neues Problem... wiederherstellen des Status einer "Box
hi,
da das Setzen und Bewegen von Items nicht möglich ist, würd ich gern wissen (um eine "move" Funktion) zu implementieren, wie ich ein Drag&Drop simulieren könnte? QDrag->start ( ) kann ja nicht aufgerufen werden, da dann das Programm einfriert, da es ja auf ein Ende des Drag wartet, das nicht kommen kann...
Ich hab jetzt folgede Funktion (Elementfunktion der von QListWidget erbenden Klasse) versucht:(wobei f_itemPos die alte Position des Items und f_newItemPos die zu erreichende Position des Items ist)
Ziel dieses Codes ist es auf das Item zu "klicken" um es zu markieren anschließend eine Bewegung mit erneut gedrückter Maustaste durchzuführen und anschließend loszulassen. Das sollte meiner Meinung zu einem Drag&Drop führen, wie von mir beabsichtigt. Tut es aber nicht...
Hat einer ne Idee wo mein Fehler liegt?
Danke
Elgrimm Esleborn
PS: Benötigt wird dies um das Aussehen (Anordnung der Icons) des "Explorers" beziehungsweiße des Inhalts einer "Box" wiederherzustellen
da das Setzen und Bewegen von Items nicht möglich ist, würd ich gern wissen (um eine "move" Funktion) zu implementieren, wie ich ein Drag&Drop simulieren könnte? QDrag->start ( ) kann ja nicht aufgerufen werden, da dann das Programm einfriert, da es ja auf ein Ende des Drag wartet, das nicht kommen kann...
Ich hab jetzt folgede Funktion (Elementfunktion der von QListWidget erbenden Klasse) versucht:
Code: Alles auswählen
QMouseEvent clickMouseEvent ( QEvent::MouseButtonPress, f_itemPos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier );
QMouseEvent releaseMouseEvent ( QEvent::MouseButtonRelease, f_itemPos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier );
QMouseEvent releaseMouseEvent2 ( QEvent::MouseButtonRelease, f_newItemPos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier );
QMouseEvent moveMouseEvent ( QEvent::MouseMove, f_newItemPos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier );
mousePressEvent ( &clickMouseEvent );
mouseReleaseEvent ( &releaseMouseEvent );
mousePressEvent ( &clickMouseEvent );
mouseMoveEvent ( &moveMouseEvent );
mouseReleaseEvent ( &releaseMouseEvent2 );Ziel dieses Codes ist es auf das Item zu "klicken" um es zu markieren anschließend eine Bewegung mit erneut gedrückter Maustaste durchzuführen und anschließend loszulassen. Das sollte meiner Meinung zu einem Drag&Drop führen, wie von mir beabsichtigt. Tut es aber nicht...
Hat einer ne Idee wo mein Fehler liegt?
Danke
Elgrimm Esleborn
PS: Benötigt wird dies um das Aussehen (Anordnung der Icons) des "Explorers" beziehungsweiße des Inhalts einer "Box" wiederherzustellen
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Re: Neues Problem... wiederherstellen des Status einer "
Ich versteh immer noch nicht genau was dein Ziel ist. Hast Du dir die Drag&Drop Beispiele mal angesehen? Da ist doch alles dabei was Du suchst. Oder willst Du explorermäßig zwischen Listenansicht und frei verschiebbaren Icons wechseln? Dann nimm verschiedene Widgets, bevor Du versuchst so eine Krücke der ListView beizubringen.Esleborn hat geschrieben:Hat einer ne Idee wo mein Fehler liegt?
ich will, dass ich auch ohne Nutzereingriff die Icons verschieben kann. Dafür muss ich, da jede andere Schnittstelle fehlt, ein Drag&Drop simulieren. Dabei darf ich NICHT (qdrag).start ( ) aufrufen, da sonst kein Drop kommt, da auf ein drop des Users gewartet wird. Jetzt verstanden?
Glaube an eine Lösung, nur dann kannst du auch eine finden.