Alles rund um die Programmierung mit Qt
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 6. März 2010 11:53
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?
Zuletzt geändert von
24dan am 14. März 2010 19:43, insgesamt 1-mal geändert.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Christian81
Beiträge: 7319 Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:
Beitrag
von Christian81 » 6. März 2010 12:14
Da es Dein TreeModel ist wüde ich mal nachschauen was da so alles währenddessen passiert.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
franzf
Beiträge: 3114 Registriert: 31. Mai 2006 11:15
Beitrag
von franzf » 6. März 2010 12:17
Hast du evtl. QTreeView::animated auf true stehen?
Wenn ja setz mal auf false.
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 6. März 2010 14:24
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?!?
Dateianhänge
tree01.JPG (97.02 KiB) 2779 mal betrachtet
tree02.JPG (92.23 KiB) 2779 mal betrachtet
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 6. März 2010 15:15
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() ...
Zuletzt geändert von
24dan am 6. März 2010 23:37, insgesamt 1-mal geändert.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 6. März 2010 20:54
Gehts noch, was sollen diese unnötigen langen Debug-Ausgaben hier? Und ich hoffe mal, daß dies ein Bild von dir ist.
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 6. März 2010 23:38
Ja, ahh
... man lässt sich ja belehren.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)