Jaka klasa do okna pokazującego stan obliczeń

0

Piszę program w Qt, który przeprowadza obliczenia na wielu danych. Chciałem zrobić, żeby w trakcie obliczeń pokazywał ile już obliczeń wykonano. Niestety zauważyłem, że klasa QDialog pokazana slotem exec() nie działa tak jakbym chciał, a mianowicie po jej pokazaniu się program nie wykonuje obliczeń tylko czeka na zamknięcie tego okna.
Czy mógłby ktoś mi podpowiedzieć jaką klasę wykorzystać do tego, albo może trzeba jakoś inaczej wyświetlić okno QDialog?
Z góry wielkie dzięki za pomoc.

0

QProgressBar ?

0

Jest to pewne wyjście, lecz wolałbym, aby po prostu wyskakiwało nowe okno, a chyba QProgressBar nie ma takiej funkcji.

0

<facepalm>.... to otwórz dodatkową formę/dialog tylko z tym paskiem.

1

To może zamiast QDialog użyj QMainWindow (lub QWIdget z opcją Window) + QProgressBar na nim. QMainWindow wywołujesz przez show(), a nie przez exec() (exec blokuje dalsze wykonywanie)
Na szybko daję Ci jakiś mój kod. Po odpowiednich przeróbkach nada się, myślę. Sorry, ale w pracy jestem, nie mogę więcej.

   QMainWindow *pop = new QMainWindow(0);
      QWebView *view = new QWebView(pop);
                pop->setCentralWidget(view);
/*                connect(view, SIGNAL(urlChanged(QUrl)), pop, SLOT(urlChanged(QUrl)));
                connect(view, SIGNAL(statusBarMessage(QString)), pop, SLOT(StatusBarText(QString)));
*/              connect(view, SIGNAL(loadStarted()), pop, SLOT(loadStarted()));
                connect(view, SIGNAL(loadFinished(bool)), pop, SLOT(loadFinished(bool)));
                connect(view, SIGNAL(loadProgress(int)), pop, SLOT(doProggress(int)));
/*				connect(view->page(), SIGNAL(downloadRequested(QNetworkRequest)), this,
                                             SLOT(doDownloadRequested(QNetworkRequest)));
*/ // to trzeba przepisać do pop lub jakoś połączyć z MainWindow?
                pop->webView = view;
                pop->show();
0

Problem rozwiązany - użyłem QWidget. Dzięki za pomoc zibicoder.

1 użytkowników online, w tym zalogowanych: 0, gości: 1