Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [qt4] узнать время работы программы


Автор: gordmiand 21.2.2010, 01:08
привет всем!
мне надо сделать вывод времени работы программы в формате "часы:минуты:секунды"...
подскажите плиз как можно это реализовать? есть ли готовая функция для такого действия или надо самому такое запрограммировать с использованием таймера?  

Автор: SABROG 21.2.2010, 02:52
Добавь в свой класс член startupDate:

Код

QDateTime startupDate;


В конструкторе класса инициализируй значением:

Код

MainWindow::MainWindow : 
    QWidget(parent),
    ui(new Ui::Widget),
    startupDate(QDateTime::currentDateTime())
{
}


Например при закрытии главного окна получаем сколько времени прошло с момента запуска
Код

void MainWindow::closeEvent(QCloseEvent *event)
{
    int elapsedSecs = qAbs(startupDate.secsTo(QDateTime::currentDateTime()));
    enum {minInSecs = 60,
          hrInSecs = minInSecs * 60,
          dayInSecs = hrInSecs * 24,
          yearInSecs = dayInSecs * 365};

    int elapsedYears = elapsedSecs / yearInSecs;
    elapsedSecs %= yearInSecs;
    int elapsedDays = elapsedSecs / dayInSecs;
    elapsedSecs %= dayInSecs;
    int elapsedHours = elapsedSecs / hrInSecs;
    elapsedSecs %= hrInSecs;
    int elapsedMinutes = elapsedSecs / minInSecs;
    elapsedSecs %= minInSecs;

    qDebug("Uptime: %d year(s), %d day(s), %d:%d:%d", elapsedYears, elapsedDays, elapsedHours, elapsedMinutes, elapsedSecs);
    event->accept();
}

Автор: gordmiand 21.2.2010, 18:01
да, но мне надо отображать время работы программы в виде часов - то есть изменяющееся значение, а не при закрытии главного окна приложения как итоговый ответ...

Автор: SABROG 22.2.2010, 01:23
Запусти таймер и обновляй свой виджет новыми данными каждую секунду.

Автор: gordmiand 22.2.2010, 11:55
я так и думал сделать...спасибо!!! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)