QTimer w Qt się nie wywołuje.

0

Dzień dobry - tak, wiem że spamie - mam pytanie dlaczego nie włącza mi się timer po naciśnięciu na przycisk? Zrobiłem tak jak w dokumentacji pisali, nie mam żadnego błędu, dodałem qDebug dla pewności. Przepraszam ze podaje tak mało informacji, ale sam niewiele mam ( ostatnio mam masę błędów których nie pokazuje w terminalu ).

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    system(std::string("cd ~/Desktop/ && mkdir PlazaPCO").c_str());

    ui->TimeLabel->setVisible(false);
    ui->RecordingLabel->setVisible(false);

    connect(timer, &QTimer::timeout, this, QOverload<>::of(&MainWindow::timeFunc));

}

void MainWindow::timeFunc() {
    timeElapsed = timeElapsed.addSecs(1);
    ui->TimeLabel->setText("Time: " + timeElapsed.toString("hh:mm:ss"));
    qDebug() << timeElapsed.toString("hh:mm:ss");
}

void MainWindow::on_pushButton_clicked()
{
    if(!recording){

        QString DateString = QDate::currentDate().toString("MM-dd-yy");
        QString TimeString = QTime::currentTime().toString("hh:mm:ss");

        date = DateString + "-" + TimeString;

        qDebug() << date;

        Qcon.terminate();
        ui->pushButton->setStyleSheet("* { background-color: rgb(168, 11, 0) }");
        timer->start(1000); //Start
        recording = true;
        ui->RecordingLabel->setVisible(true);
        ui->TimeLabel->setVisible(true);
        Recording();
    } else {
        timer->stop(); //Stop
        Qrec.terminate();
        ui->pushButton->setStyleSheet("* { background-color: rgb(255,255,255) }");
        recording = false;
        ui->RecordingLabel->setVisible(false);
        ui->TimeLabel->setVisible(false);
        Converting();
        timeElapsed.restart(); //Restart
    }

}

kod: https://github.com/OurProjectTeamSocket/FirstProjectFromFreelancer/blob/main/PlazaPCO/mainwindow.cpp

Edit: Już nie ważne spanienie w przycisk Run pomogło.

1

Nie widzę abyś tworzył obiekt timer.

BTW, po co ten QOverload? Masz więcej przeładowań timerFunc?

0
kq napisał(a):

Nie widzę abyś tworzył obiekt timer.

BTW, po co ten QOverload? Masz więcej przeładowań timerFunc?

Obiekt QTimer jest w pliku .hpp. QOverload jest z tutorials, więc nie zmieniałem.

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