timedelta
объекты содержат дельту между двумя датами - 2 года, 2 миллисекунды и т. Д.
Вы пытаетесь привести эту временную дельту в строковое представление даты / времени; мгновение, которое невозможно.
now - self.start_time
- это не дата или время, это промежуток времени, прошедший между тогда и сейчас. Выразите это, скажем, вместо секунд:
(datetime.now() - self.start_time).total_seconds()
edit: преобразовать эти секунды в HH:MM:SS
:
td = datetime.now() - self.start_time
minutes, seconds = divmod(td.seconds + td.days * 86400, 60)
hours, minutes = divmod(minutes, 60)
self.label_time_elapsed.text = '{:d}:{:02d}:{:02d}'.format(hours, minutes, seconds)