2015-06-11 3 views
0

Я пытаюсь получить текстовое поле для отображения текущего времени каждые 5 секунд с помощью QTimer. У меня текущее время отображается в отдельном методе, а затем QTimer вызывает этот метод и отображает текущее время. Я не могу для жизни понять, как передать переменную из метода setCurrentTime в QTimer. Я уверен, что это действительно легкое исправление, но я не могу понять это. Вот мой код.Передача текущей переменной времени

void noheatmode::setCurrentTime() 
{ 
    QTime time = QTime::currentTime(); 
    QString sTime = time.toString("hh:mm:mm"); 
    // ui->tempTimeNoHeatMode->append(sTime); 

} 

void noheatmode::on_timeButton_clicked() 
{ 


    QTimer *timer =new QTimer(this); 
    connect(timer,SIGNAL(timeout()), this, SLOT(setCurrentTime())); 
    timer->start(5000); 
    ui->tempTimeNoHeatMode->append(sTime); 
} 
+1

Какие проблемы вы с? –

ответ

0

Если у меня возникла проблема, у вас просто есть переменная минут вместо секунд. Просто измените «чч: мм: мм» до «чч: мм: сс»

void noheatmode::setCurrentTime() 
{ 
    QTime time = QTime::currentTime(); 
    QString sTime = time.toString("hh:mm:ss"); 
    ui->tempTimeNoHeatMode->append(sTime); 
} 
+0

Спасибо за типографию Найти Генриха. Это была проблема. – cdbean04

0

С код:

void noheatmode::on_timeButton_clicked() 
{ 
    QTimer *timer =new QTimer(this); 
    connect(timer,SIGNAL(timeout()), this, SLOT(setCurrentTime())); 
    timer->start(5000); 
    ui->tempTimeNoHeatMode->append(sTime); 
} 

Это означает, что функция в SLOT будет называться каждые 5000 миллисекунды, который = 5 секунд. Тогда можно сделать то, что вы устанавливаете свою функцию setCurrentTime() для обновления вашего текстового поля каждый раз, когда он вызывается.

Пример:

void Class::setCurrentTime() 
{ 
    QTime times = (QTime::currentTime()); 
    QString currentTime=times.toString("hh:mm:ss"); 
    ui->label->setText(currentTime); 
    //Assuming you are using a label to output text, else substitute for what you are using instead 
    //Every time this function is called, it will receive the current time 
    //and update label to display the time received 
} 
Смежные вопросы