Seite 1 von 1

QProgressBar

Verfasst: 26. Juni 2013 16:40
von sirair
Hi,

ich habe eine langwigrige Operation. Deshalb verwende ich dafür QProgressBar, um den Status anzuzeigen.
Allerdings habe ich das Problem, dass QProgressBar erst startet nachdem die Operation vorbei ist, obwohl ich einen separaten Thread dafür verwende.

Code: Alles auswählen

//Klasse MainWindow

void fetchData(){
QProgressBarThread* thread = new QProgressBarThread();
thread->start();

....
//Operation zum Holen von Daten aus DB

}

//Klasse QProgressBarThread

QProgressBarThread(){
progressBar = new QProgressBar();
progressBar->setMinimum(0);
progressBar->setMaximum(0);
}

run(){
progressBar->show();
}

Re: QProgressBar

Verfasst: 26. Juni 2013 22:43
von hilefoks
Moin,

wie ist dein Code zu interpretieren. Wenn ich es richtig verstehe, läuft fetchData im Haupt-Thread. Erzeugst du die ProgressBar etwa in einem eigenen Thread?

MfG,

Hilefoks

Re: QProgressBar

Verfasst: 26. Juni 2013 23:03
von sirair
Ja fetchData läuft im Hauptthread.
Die ProgressBar erzeuge ich in einem eigenen Thread und starte sie bevor eigentlich die lange Operation beginnt.

Re: QProgressBar

Verfasst: 27. Juni 2013 12:08
von hilefoks
Sorry - das ist genau falsch herum.
GUI-Code muss immer im Hauptthread laufen und deine eigentliche Arbeit solltest du dann in einem gesonderten Thread erledigen.