[Qt4.13] Bug im ListView?
[Qt4.13] Bug im ListView?
hi,
- QListview im IconMode, mit rootIndex a
- Verschiebt man jetzt ein Item an eine andere Position (nicht das erste, da sieht man nichts)
- Anschließend ändert man per setRootIndex den index zu b
- Anschließend ändert man per setRootIndex den index zurück zu a
Jetzt liegen die vorhin verschobenen Items auf der Position des ersten Items.
Bei Qt4.12 geht das ganze mit dem gewünschten Effekt:
Die Items liegen wie ganz am Anfang...
- QListview im IconMode, mit rootIndex a
- Verschiebt man jetzt ein Item an eine andere Position (nicht das erste, da sieht man nichts)
- Anschließend ändert man per setRootIndex den index zu b
- Anschließend ändert man per setRootIndex den index zurück zu a
Jetzt liegen die vorhin verschobenen Items auf der Position des ersten Items.
Bei Qt4.12 geht das ganze mit dem gewünschten Effekt:
Die Items liegen wie ganz am Anfang...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
könnte wohl jemand den angehängten Code ausprobieren. Ich hab nur ein Qt mit inoffizielen Patch für MS Visual Studio 2003... das nehmen die als Bugbeschreibung nicht an...
Wenn man das Programm öffnet (QT413 kompiliert, achtet drauf, dass auch die richtigen dynamischen libs verwendet werden, wenn ihr dynamisch linkt), uss man drauf achten, dass man nciht in einem Rootverzeichnis ist, da ich um den rootindex zu ändern (DirModel) einmal cd ( ".." ) aufrufe
.
Dann der eigentliche Test:
Elgrimm Esleborn
PS: Der Code ist nicht so ganz sauber, sorry, aber ich hatte nicht wirklcih viel Zeit...
Wenn man das Programm öffnet (QT413 kompiliert, achtet drauf, dass auch die richtigen dynamischen libs verwendet werden, wenn ihr dynamisch linkt), uss man drauf achten, dass man nciht in einem Rootverzeichnis ist, da ich um den rootindex zu ändern (DirModel) einmal cd ( ".." ) aufrufe
Dann der eigentliche Test:
- 1. man bekommt das momentane Verzeichniss angeziegt (in einem Listview, IconMode).
2. Man verschiebt ein paar Items
3. Man drückt den Button
4. Wenn es den Bug gibt, dann werden jetzt mehrere Items auf die Position des "links-oberstes" items angezeigt (um genau zu sein, alle die verschoben wurde und das was davor schon auf der "obersten" Stelle lag)
Elgrimm Esleborn
PS: Der Code ist nicht so ganz sauber, sorry, aber ich hatte nicht wirklcih viel Zeit...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Den Fehler kenne ich, allerdings in etwas anderer Form. Ich habe aber mal deine Sourcen geändert und dann taucht er auch auf. Setz das GridSize mal größer als die Icons, so das Du etwas zwischen Icons ablegen kannst. Wenn Du jetzt ein Icon zwischen zwei andere legst, dann wird das Icon auf das obere Icon drauf gepappt. Man bekommt sie dann nicht mehr getrennt.
Nein, alles Vollversionen. Report ist schon raus, mit diesem Stückchen Code (für Linux sollte man das C: ersetzen):
Man kann locker Icons auf andere Icons pappen und Redrawfehler gibt es auch, wenn mal runter scrollt und dort Drag&Dropped 
Code: Alles auswählen
# include <QApplication>
# include <QListView>
# include <QDirModel>
int main ( int argc, char **argv )
{
QApplication app(argc, argv);
QDirModel* mp_model = new QDirModel ( NULL );
QListView* mp_view = new QListView;
mp_view->setModel ( mp_model );
mp_view->setRootIndex ( mp_model->index ( "C:" ) );
mp_view->setCurrentIndex ( mp_model->index ( "C:" ) );
mp_view->setMovement ( QListView::Snap );
mp_view->setGridSize ( QSize ( 60, 60 ) );
mp_view->show ( );
app.exec ( );
return 0;
}
Lang hat's gedauert, aber dann kam doch noch Antwort 
http://www.trolltech.com/developer/task ... thod=entry
http://www.trolltech.com/developer/task ... thod=entry