GUI Control als Fortschrittsanzeige

Alles rund um die Programmierung mit Qt
Antworten
grisu1972
Beiträge: 66
Registriert: 9. November 2007 16:08

GUI Control als Fortschrittsanzeige

Beitrag von grisu1972 »

Hallo Leute,

folgendes Problem:
ich habe einen Vorgang der z.B. zwischen 2 und 300 Sekunden dauert, in dieser Zeit ist meine GUI gesperrt. Ich möchte dem Benutzer anzeigen, dass sich das Programm nicht aufgehangen hat und er warten muss.
Dazu kann ich nicht die normale Fortschritsanzeige QProcessbar benutzen, da ich auf eine blokierend Funktion warte. Was ich suche ist etwas wie ein QProcessBarNightRaider der dauernd blinkt und den ich aus der Anwendung beende, gibt es sowas fertig?

Grüsse Carsten
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: GUI Control als Fortschrittsanzeige

Beitrag von macman »

grisu1972 hat geschrieben:Dazu kann ich nicht die normale Fortschritsanzeige QProcessbar benutzen
Klar geht das, processEvents. Allerdings sollte man dann auch sicherstellen, das nicht alle Events etwas auslösen.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Wenn dein Vorgang 300 sek dauern kann, solltest eh ueberlegen ob den ned in nen eigenen thread auslagerst ... alein schon um den User ned mit ner toten Oberflaeche zu langweilen :-)

Alternativ waer das du dein "Vorgang" staendig unterbrichst .... und processEvents oder sowas aufrufst, dann kannst aber auch gleich ne richtige fortschrittsanzeige einbauen, weil beim unterbrechen solltest ja wissen an was fuer ner stelle du bist ....

Ciao ...
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Man könnte auch den QProgressDialog verwenden und sich dazu die Beispiel in der Doku anschaun. Dieser ruft von sich aus unter bestimmten Umständen processEvents auf.
Antworten