[gelöst] Zeit in statusbar updaten



  • Hallo,

    ich versuche in der Statusbar meines Programms die aktuelle Zeit anzeigen zu lassen.
    Einmalig beim Start funktioniert dies auch nur wie kann ich es jede Sekunde updaten lassen?

    Ich habe bisher folgenden Ansatz:

    QLabel *timelabel = new QLabel(QTime::currentTime().toString("hh:mm:ss"));
    timelabel->setMinimumSize(timelabel->sizeHint());
    ui->statusBar->addWidget(timelabel, 1);
    
    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(updateTime()));
    timer->start(1000);
    
    void updateTime() {
        timelabel->setText(QTime::currentTime().toString("hh:mm:ss"));
    }
    

    leider führt dies zu einem Segment Fault error.



  • Ist 'timelabel' bei dir eine Membervariable?
    Deine erste Codezeile schaut nicht danach aus (d.h. du erzeugst eine lokale Variable gleichen Namens)...



  • In der Header Datei habe ich folgendes:

    private:
    QLabel *datelabel;



  • private:
    QLabel *datelabel;
    WIRD IM CODE ABER NICHT GENUTZT!

    *QLabel timelabel = new QLabel(QTime::currentTime().toString("hh🇲🇲ss"));
    QLabel darf hier, wenns eine Member-Variable wäre, garnicht mehr stehen!

    void updateTime() {
    timelabel->setText(QTime::currentTime().toString("hh🇲🇲ss"));
    }
    Tja, dein timelabel ist wohl nicht gültig, wegen siehe oben.



  • Vielen Dank hat nun funktioniert


Log in to reply