Beste mensen,
Ik heb een leuk appje met daarin een KProcess (of QProcess, wat je wil). Daarmee start ik een langlopend (ongeveer 5 minuten) programma, dat een bestand aanmaakt. Om dit proces te kunnen monitoren, bekijk ik elke 5 seconden de grootte van dat bestand:
Het proces wordt opgestart op het moment dat de user op "Start!" klikt, en vervolgens komt het programma in een loop terecht, waarin de filesize in een QLabel wordt gezet (lblStatus). Echter, dit gaat niet goed... De gebruiker zal de indruk krijgen dat de applicatie crasht, omdat het venster een grijze 'veeg' over zich heen krijgt. Het label wordt namelijk wel ingesteld, maar als het ware niet opnieuw getekend. Is er een alternatieve manier om dit te doen? Google en GoT maken me niet veel wijzer...
Ik heb een leuk appje met daarin een KProcess (of QProcess, wat je wil). Daarmee start ik een langlopend (ongeveer 5 minuten) programma, dat een bestand aanmaakt. Om dit proces te kunnen monitoren, bekijk ik elke 5 seconden de grootte van dat bestand:
code:
1
2
3
4
5
6
| while (proc.isRunning()){
string fileSizeCmd = "stat -c %s " + targetFile + " > /tmp/filesize";
system(fileSizeCmd.c_str());
lblStatus->setText(file2string("/tmp/filesize"));
system("rm -f /tmp/filesize");
} |
Het proces wordt opgestart op het moment dat de user op "Start!" klikt, en vervolgens komt het programma in een loop terecht, waarin de filesize in een QLabel wordt gezet (lblStatus). Echter, dit gaat niet goed... De gebruiker zal de indruk krijgen dat de applicatie crasht, omdat het venster een grijze 'veeg' over zich heen krijgt. Het label wordt namelijk wel ingesteld, maar als het ware niet opnieuw getekend. Is er een alternatieve manier om dit te doen? Google en GoT maken me niet veel wijzer...