Modaler Dialog mit progressbar.

Alles rund um die Programmierung mit Qt
Antworten
David
Beiträge: 1
Registriert: 31. März 2005 22:28
Wohnort: Frankfurt
Kontaktdaten:

Modaler Dialog mit progressbar.

Beitrag von David »

Hallo,

Folgende Problemstellung:

eine Klasse enthält eine Funktion, die eine Verbindung zu einer Datenbank überprüft. Dies kann einige Zeit dauern (z.B. Timeout 10 Sekunden.)

Aus der Hauptdialog-Klasse soll diese funktion aufgerufen werden. Damit der Benutzer sieht, das etwas passiert, soll _wärend dessen_ ein Modaler Dialog mit einer progressBar angezeigt werden (jede Sekunde ein tick. maximale value wäre der Timout).

Ich bin mir nicht sicher, ob ich hier Threads benutzen muss oder ob es eine einfachere Möglichkeit gibt das obige zu tun.

Also um das mal zu veralgemeinern: Vom haupt prozess mit soll eine Funktion aufgerufen werden, die einige Zeit den Prozess blockieren könnte. Wärend dieser Prozess also auf das Ergebnis wartet, soll (in einem neuen Thread?) ein Modaler Dialog angezeigt werden, der den Benutzer über den Fortschritt informiert.

Himmel Hilf ;)

David
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

Wenn es Dir nicht auf die Genauigkeit nach millisekunden ankommt, kannst Du in Deinem Hauptdialog (oder von wo auch immer Du Deine Progressbar ansprichst) eine Timerfunktion aufrufen.

Innerhalb des Timerevent fragst Du den Stand der Bearbeitung ab und setzt die Progressbar

Innerhalb Deiner Funktion musst Du gelegentlich eine qApp->eventloop()->processEvent aufrufen, wobei Du als Parameter z.B. Benutzereingaben sperren kannst (Ein Abbruch Knopf wäre jedoch auch ganz schön)

Gruss Arne
Antworten