Seite 1 von 1

[gelöst] treeView->expandToDepth() frisst meine Zeit 28se

Verfasst: 6. März 2010 11:53
von 24dan
Hallo ich habe ein Zeitproblem mit der Funktion:
treeView->expandToDepth();
Die Funktion frisst das doppelte an Zeit was alle anderen Nutzfunktionen brauchen... 28 Sekunden.

Hier mal mein Source Code Stelle an der ich das verwende.

Code: Alles auswählen


        QFile file("test.txt");
        file.open(QIODevice::ReadOnly);
        model = new TreeModel(file.readAll(), this);
        file.close();

        time.start();
                 ui->treeView->setModel(model);
        qDebug("Daten Ansicht: %dms", time.elapsed());

        time.start();
                 ui->treeView->expandToDepth(2);
        qDebug("Daten expand: %dms", time.elapsed());

        time.start();
            for (int i=0; i<12; i++) ui->treeView->resizeColumnToContents(i);
        qDebug("Daten Contents: %dms", time.elapsed());

        time.start();
                  ui->treeView->show();
        qDebug("Daten Show: %dms", time.elapsed());

Ausgabe:

Code: Alles auswählen

Daten Model: 78ms <- Zeitmessung aus einer anderen Funktion (Model füllen)
Daten Ansicht: 15ms
Daten expand: 30297ms
Daten Contents: 78ms
Daten Show: 0ms
Irgend jemand einen Tip was ich falsch mache? :roll:

Verfasst: 6. März 2010 12:14
von Christian81
Da es Dein TreeModel ist wüde ich mal nachschauen was da so alles währenddessen passiert.

Verfasst: 6. März 2010 12:17
von franzf
Hast du evtl. QTreeView::animated auf true stehen?
Wenn ja setz mal auf false.

Verfasst: 6. März 2010 14:24
von 24dan
Da es Dein TreeModel ist wüde ich mal nachschauen was da so alles währenddessen passiert.
Ich werde mal qDebug in jede Funktion des Model einbauen um zu sehen was dort so abgeht. Melde mich dann. Danke.
franzf hat geschrieben:Hast du evtl. QTreeView::animated auf true stehen?
Wenn ja setz mal auf false.
Habe hier mal die Eigenschaften des TreeView in Bild angehängt. Der Wert war auf FALSE?!?

Verfasst: 6. März 2010 15:15
von 24dan
Denn Sie wissen nicht was sie tun.....

AAAAAI`M SHOCKED BY THE QT MODEL

Hier mal ein paar Funktionen die aufgerufen werden wenn ich ein expand... ausführe.

Code: Alles auswählen

int TreeModel::rowCount parent.isValid() return parentItem->childCount() 
int TreeModel::columnCount !parent.isValid() return rootItem->columnCount() 
int TreeModel::rowCount parent.isValid() return parentItem->childCount() 
int TreeModel::rowCount parent.isValid() return parentItem->childCount() 
int TreeModel::columnCount !parent.isValid() return rootItem->columnCount() 
QModelIndex TreeModel::index childItem return createIndex(row, column, childItem) 
int TreeModel::rowCount parent.isValid() return parentItem->childCount() ...

Verfasst: 6. März 2010 20:54
von upsala
Gehts noch, was sollen diese unnötigen langen Debug-Ausgaben hier? Und ich hoffe mal, daß dies ein Bild von dir ist.

Verfasst: 6. März 2010 23:38
von 24dan
Ja, ahh

... man lässt sich ja belehren.

:oops: