J'ai de lourdes tâches. J'ai créé QProgressBar pour afficher que le programme fonctionne encore et a exécuté une lourde tâche dans un autre thread en utilisant la classe C++ std :: thread. Mais QProgressBar ne fonctionne pas, seule la fenêtre avec QProgressBar démarre. Voici le code:QProgressBar et tâche lourde
QProgressBar progress;
progress.setRange(0, 0);
progress.show();
if (keyLength == 1024)
std::thread(&RSA::generateKeys, &rsa, RSA::RSA_1024).join();
else if (keyLength == 2048)
std::thread(&RSA::generateKeys, &rsa, RSA::RSA_2048).join();
Et, où est le code, qui signale la barre de progression sur le statut modifié? Pourquoi définissez-vous votre barre de progression à l'état indéterminé, au lieu de définir des valeurs min/max valides, et de le signaler lorsque la valeur actuelle change? –
il devrait fonctionner et fonctionner sans valeur min et max, comme ceci http://doc.qt.io/qt-5/images/macintosh-progressbar.png – van9petryk
S'il vous plaît élaborer sur _how_ pensez-vous qu'il fait cela? Comment devrait-il courir à travers 0-100% de la longueur de la barre de progression, dans le laps de temps correct, sans aucune sorte de signaux sur l'état mis à jour? –