Есть конструктор для класса, в который передается начальное время:
map_viewer::map_viewer(QTime *startTime)
{
_startTime = startTime;
_tm = new QLabel(_startTime->toString("hh:mm:ss"));
_layout = new QGridLayout();
_layout->addWidget(_tm, 3, 2);
}
где _startTime - QTime*, _tm - QLabel* и _layout - QGridLayout*. Все заданы в заголовочном. Вызывается конструктор вот так:
QTime startTime = datasource->get_start_time();
map_viewer(&startTime);
После выполнения конструктора _tm имеет нормальный вид, отображает то, что нужно:
Но сразу после того, как программа выходит из конструктора, почему-то, переменная _startTime принимает invalid value. То есть, пытаюсь изменить значение _tm в одном из слотов:
_tm->setText(_startTime->addMSecs(param.getTime()).toString("hh:mm:ss"));
и получаю:
Если попытаться вывести _startTime->msec() где либо, кроме конструктора, получаю -1, что значит, что _startTime имеет недопустимое время. При этом, _startTime не изменяться совершенно нигде, исключительно задается в конструкторе и используется в слоте.
Совершенно не имею понятия, в чем ошибка.
QTime startTime = datasource->get_start_time();
map_viewer(&startTime);
В этом месте вы передаете указатель на временный объект. Когда область видимости переменной startTime заканчивается - он автоматический разрушается.
Соответственно переменная _startTime в классе map_viewer содержит указатель на разрушенную память.
Копируйте время в конструктор по значению или по ссылке.
map_viewer::map_viewer(QTime startTime)
или лучше так
map_viewer::map_viewer(const QTime &startTime)
Но при этом к классе map_viewer тип переменной _startTime нужно изменить с QTime* на QTime
Ну и конечно изменить вызов конструктора на такой:
QTime startTime = datasource->get_start_time();
map_viewer(startTime);
Или даже так:
map_viewer(datasource->get_start_time());
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости