Дмитрий26 января 2021 г. 5:03

Получение даты сборки программы

дата сборки, время сборки, сборка проекта

Всем привет!
Возник такой вопрос.
Я в виджете вывожу версию софта и время сборки. Для этого делаю так так:
в .pro-файле:

VERSION = 1.2.3
DEFINES += APP_VERSION=\\\"$$VERSION\\\"

в .cpp-файле виджета:

#ifndef TS_BUILD
#define TS_BUILD (QLocale(QLocale::C).toDateTime(__TIMESTAMP__, "ddd MMM d hh:mm:ss yyyy").toTime_t())
#endif

ui->labelVersion->setText(ui->labelVersion->text()+APP_VERSION+" Build: "+QDateTime::fromTime_t(TS_BUILD).toString("yyyy.MM.dd hh:mm"));

Это работает, но приходится при сборке изменять этот cpp-файл, где находится label (например пробел поставить).
Можно ли как-то сделать, что когда пересобираешь проект, дата сразу подставлялась? Т.е. чтобы не нужно было менять cpp-файл.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
2
ИП

__

  • 18 февраля 2021 г. 7:56
  • Ответ был помечен как решение.

Проблему решил так:
В .pro файле:

VERSION = 1.2.3
DEFINES += APP_VERSION=\\\"$$VERSION\\\"

#Формирование даты и времени сборки (меняется при полной пересборке проекта)
win32:{
BLD_DATE=$$system(date /t)
BLD_TIME=$$system(time /t)
DEFINES += BUILD_DATE=\\\"$$BLD_DATE\\\"
DEFINES += BUILD_TIME=\\\"$$BLD_TIME\\\"
} else {
#FULL_BUILD_DATE = $$system( date "+%d.%m.%Y_%H:%M:%S" ) и дата, и время (в линуксе)
BLD_DATE=$$system(date)
BLD_DATE = $$system( date "+%d.%m.%Y" )
BLD_TIME = $$system( date "+%H:%M" )
DEFINES += BUILD_DATE=\\\"$$BLD_DATE\\\"
DEFINES += BUILD_TIME=\\\"$$BLD_TIME\\\"
}

в .cpp файле:

ui->labelVersion->setText(ui->labelVersion->text() + APP_VERSION + " Build: " + BUILD_DATE + " " + BUILD_TIME);

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Timeweb

Позвольте мне порекомендовать вам отличный хостинг, на котором расположен EVILEG.

В течение многих лет Timeweb доказывает свою стабильность.

Для проектов на Django рекомендую VDS хостинг

Посмотреть Хостинг
C

C++ - Тест 005. Структуры и Классы

  • Результат:75баллов,
  • Очки рейтинга2
АЕ

C++ - Тест 005. Структуры и Классы

  • Результат:25баллов,
  • Очки рейтинга-10
m

C++ - Тест 003. Условия и циклы

  • Результат:28баллов,
  • Очки рейтинга-10
Последние комментарии
AB

Qt/C++ - Урок 008. QDataWidgetMapper - Работа с базой данных через виджет

Понял сам так - происходит через setTable() "Sets the database table on which the model operates to tableName. Does not select data from the table, but fetches its field information", а затем че…
AB

Qt/C++ - Урок 008. QDataWidgetMapper - Работа с базой данных через виджет

Начал делать что-то похожее, но без sql. Не очень понимаю, что делает mapper->setCurrentModelIndex(model->index(row,0)); Вернее не понимаю вот что: откуда он берёт данные, кот…
ИВ

Qt/C++ - Урок 048. QThread - работа с потоками с помощью moveToThread

Не получается сделать connect, получаю гору ошибок. В чем может быть дело ?
ИВ

Qt/C++ - Урок 034. Echo Server на основе QTcpServer

Добрый день, разрешите вопрос: во всех примерах работы с QTcpServer его всегда создают в main.cpp, нет ли возможности корректно сохдать его в MainWindow.cpp ? Просто если перенести код…
D

Django - Урок 001. Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx

А почему нельзя? Где можно об этом почитать? Киньте, пожалуйста, в меня ссылкой.
Сейчас обсуждают на форуме

Отправка картинки в DRF

Да я знаю ;-) используйте, пожалуйста, в следующий раз средства сайта. В данном случае сторонний сервис ни к месту.
  • BlinCT
  • 9 апреля 2021 г. 8:15

Работа с созданным обьектом qml через Qt.createComponent

Добрый день. И как это решает мою проблему?) Item{ id: root property var model property bool headers : false property string objectName property int iMaxWidthRow:…

Проект на cmake и QCharts

Кто-нибудь сталкивался с проблемой скроллинша чарта ? если допустим увеличить в ширину сам чарт, как скроолить весь чарт а не только его видимую часть ?

Ожидание ввода QLineEdit

Попробовал, крешится напрочь... Такое чуство что таймер не удаляется.... и к нему снова идет обращение....

QScrollArea dynamically add QCheckBoxes

Всё правильно. Это просто спамер, который отправился в вечный бан.
О нас
Услуги
© EVILEG 2015-2020
Рекомендует хостинг TIMEWEB