Название: QObject::killTimer: Timers cannot be stopped from another thread Отправлено: nvek от Август 18, 2017, 11:14 Консоль выводит следующие предупреждения:
QObject::killTimer: Timers cannot be stopped from another thread QObject::~QObject: Timers cannot be stopped from another thread Класс таймер: Код: #include "Timer.h" На главной форме: Код: MainForm::MainForm(): Код: MainForm::~MainForm() Название: Re: QObject::killTimer: Timers cannot be stopped from another thread Отправлено: nvek от Август 18, 2017, 11:42 и еще, надо таймеру изменить интервал
Код: autoUpd1Act = new QAction(Resource::OPTIONS_AUTOUPDATE1, this); Название: Re: QObject::killTimer: Timers cannot be stopped from another thread Отправлено: ssoft от Август 18, 2017, 12:09 Исправления на вскидку
Класс таймер: Код
На главной форме: Код
Код
Нельзя напрямую вызывать методы экземпляра timer внутри класса Timer, так как this и timer связаны с разными потоками. Название: Re: QObject::killTimer: Timers cannot be stopped from another thread Отправлено: nvek от Август 22, 2017, 06:03 так как класс унаследован от QThread мне кажется будет плохая идея перегрузить метод старт.
и получается менять интервал таймера придется этим же методом. на этом коннекте падает вылетает: connect(autoUpd1Act, &QAction::triggered, m_tmr, [&](bool) { m_tmr->startTimer(1000); }); Название: Re: QObject::killTimer: Timers cannot be stopped from another thread Отправлено: nvek от Август 22, 2017, 06:06 и по завершению программы выводит следующее:
QObject::connect: No such slot QTimer::startTimer(int) in ... где startTimer(int) переименованный start(int) Название: Re: QObject::killTimer: Timers cannot be stopped from another thread Отправлено: ssoft от Август 30, 2017, 09:32 и по завершению программы выводит следующее: QObject::connect: No such slot QTimer::startTimer(int) in ... где startTimer(int) переименованный start(int) Здесь не зарегистрирован слот с помощью Q_SLOT, а также, скорее всего, не декларирован макрос Q_OBJECT внутри определения типа Timer. Код
|