Potrzebuje wyświetlać zegar w programie. Do tego celu dodałem do mojej głównej pętli programu, instrukcje emit time_update();
void MainLoop::start()
{
while(1){
emit time_update();
if(MainWindow::oczekujace.empty() && MainWindow::ladujace.empty()) continue;
else{
if(!MainWindow::oczekujace.empty()){
QThread::msleep(4000);
emit move();
}
if(!MainWindow::ladujace.empty()){
QThread::msleep(4000);
emit move2();
}
}
}
}
Sygnał ten jest przechwytywany w klasie MainWindow i tam w odpowiednim slotcie aktualizuje labela:
void MainWindow::TimeUpdate()
{
time = QTime::currentTime();
timeString = time.toString();
ui->timeLabel->setText("Time: " + timeString);
}
Dlaczego to nie działa? Aplikacja się zawiesza. Pierwsza myśl, to to że potrzebuje osobny wątek na to, ale dlaczego nie mogę tego zrealizować w tym który już mam?
Pozdrawiam