QProgressDialog für werte > int ?
QProgressDialog für werte > int ?
Hallo allerseits,
ich habe folgendes Problem:
Ihc laufe eine schleife z.B 500 000 mal durch.
Ich habe einen ProgressDialog der diesbezüglich upgedated werden soll.
Als Maximalwert sind aber nur int - werte zugelassen für den Dialog. Ich könnte natürlich hergehen und eine if-Abfrage mit Modulo Rechnung in die Schleife hauen so dass z.B bei jedem 500sten durchlauf um eins der dialog inkrementiert wird. Das raubt mir aber in der schleife saftig Zeit. Ich brauche es eben performant.
Hat jemand ne Idee oder sehe ich vor Lauter Bäumen den Wald kaum?
Ich vermute im Moment dass ich ohne die Abfrage keine Chance habe....
Gibt es vielleicht sowas wie einen QProgressDialog wo nur hin und hergependelt wird so dass der user sieht dass was läuft?
Ich danke für jegliche Hilfe!
ich habe folgendes Problem:
Ihc laufe eine schleife z.B 500 000 mal durch.
Ich habe einen ProgressDialog der diesbezüglich upgedated werden soll.
Als Maximalwert sind aber nur int - werte zugelassen für den Dialog. Ich könnte natürlich hergehen und eine if-Abfrage mit Modulo Rechnung in die Schleife hauen so dass z.B bei jedem 500sten durchlauf um eins der dialog inkrementiert wird. Das raubt mir aber in der schleife saftig Zeit. Ich brauche es eben performant.
Hat jemand ne Idee oder sehe ich vor Lauter Bäumen den Wald kaum?
Ich vermute im Moment dass ich ohne die Abfrage keine Chance habe....
Gibt es vielleicht sowas wie einen QProgressDialog wo nur hin und hergependelt wird so dass der user sieht dass was läuft?
Ich danke für jegliche Hilfe!
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Evtl. geht ja sowas falls die Modulo - Berechnung (if ((x%1000)==0) ) doch das Problem ist
Code: Alles auswählen
for(int i = 0 ; i < 1000; i++) {
for(int j = 0 ; j < 5000; j++) {
}
updateProgress();
}
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
danke chrisitan für die Hilfe...
leider kostet mich jeder Funktionsaufruf also sowohl ein qApp->processEvents() oder auch nur ein update() der progressDialogs immer einige 10 millisekunden Zeit. auch ein blosser pendelbalken als ProgressDialog frisst das. Die Modulo-Rechnung dagegen fast nichts...
Hat jemand vielleicht eine performante Alternative anzubieten? Evtl. ein statischer Dialog der nur eine Message anzeigt?
Würde es mit einem animierten Gif funktionieren? Ich meine so als Bild des pendelnden Balkens? Nur so ne (dumme) Frage...
Danke
leider kostet mich jeder Funktionsaufruf also sowohl ein qApp->processEvents() oder auch nur ein update() der progressDialogs immer einige 10 millisekunden Zeit. auch ein blosser pendelbalken als ProgressDialog frisst das. Die Modulo-Rechnung dagegen fast nichts...
Hat jemand vielleicht eine performante Alternative anzubieten? Evtl. ein statischer Dialog der nur eine Message anzeigt?
Würde es mit einem animierten Gif funktionieren? Ich meine so als Bild des pendelnden Balkens? Nur so ne (dumme) Frage...
Danke
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Hätte ch eigentlich gestern schon erwähnen sollen - cpu-Lastige Operationen sollten in einen eigenen Thread. Dieser schickt dann per QCustomMessage (Qt3) oder signal (Qt4, wenn es geht, ansonsten QEvent) ein paar Statusinfos welche dann der Hauptthread anzeiget.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Hy!
In Qt 4 und Signals aber nicht den Parameter Qt::QueuedConnection im connect vergessen, bzw. dann das registrieren von eigenen Typen.
siehe Qt::ConnectionType
mfg
uhu01
In Qt 4 und Signals aber nicht den Parameter Qt::QueuedConnection im connect vergessen, bzw. dann das registrieren von eigenen Typen.
siehe Qt::ConnectionType
mfg
uhu01
Hallo,
vielen Dank für eure Ideen wiedermals.
Wenn ihr noch Zeit habt
und Lust habt zu antworten würde es mich wirlich interessieren ob ich es doch performant hinbekommen könnte einen QProgressDialog darzustellen.
@Christian: Denkst du über einen eigenen Thread würde es dann problemlos ohne sichtlichen Zeitverlust (evtl. im Bereich 0,001 sekunde also 1 milli sekunde) gehen?
@ups: Hab versucht mich bisschen schlau zu machen - hab aber deinen letzten Post nicht wirklich ganz verstanden
Danke euch vielmals!
vielen Dank für eure Ideen wiedermals.
Wenn ihr noch Zeit habt
@Christian: Denkst du über einen eigenen Thread würde es dann problemlos ohne sichtlichen Zeitverlust (evtl. im Bereich 0,001 sekunde also 1 milli sekunde) gehen?
@ups: Hab versucht mich bisschen schlau zu machen - hab aber deinen letzten Post nicht wirklich ganz verstanden
Danke euch vielmals!
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: