В основном классе MainWidnow
определён Qtimer* timer
. Внутри одного из методов класса timeout связывается с публичным слотом:
if (!timer)
{
timer = new QTimer(this);
}
connect(timer, SIGNAL(timeout()), this, SLOT(redraw()));
timer->start(2000);
Где redraw()
:
void MainWindow::redraw()
{
QMessageBox msg;
msg.setText("Called");
msg.exec();
if( !stack.isEmpty() )
{
stack[0]->mark ^= stack[0]->mark || 1;
stack[0]->edge->update();
stack.removeFirst();
}
else
{
timer->stop();
delete timer;
}
}
Где stack
- это QList. Если проверить дебаггером, то в условие остановки таймера и его удаления, функция входит вовремя, но при этом единожды срабатывает после остановки. В чём может быть причина? Если после этого снова запустить таймер, то функция вызывается дважды с интервалом меньше секунды, и после остановки вызывается дважды.
P.S.: что слот, что таймер вызываются лишь в одном методе на весь проект, а слот исключительно по таймауту.
deleteLater
Решение - вызвать disconnect
, когда в таймере отпадет необходимость.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При помещении информации, которую извлекаю с сайтов столкнулся с проблемой
При запуске сервера через пакетный файл, в открывшейся консоли выскакивает вот такая ошибка, может быть кто нибудь знает как это пофиксить?...
После установки чего либо npm install вылазит этоКак исправить?