Здравствуйте, гость ( Вход | Регистрация )
cupersuper | Дата 12.11.2015, 13:02 |
Решил проблему. Добавил Qt::QueuedConnection и сигнал стал отправляться после отработки вызвавшей его функции. lanz, спасибо, через QTimer тоже можно. |
|
lanz | Дата 11.11.2015, 10:07 |
Поскольку оба объекта в одном потоке, вызовы слотов происxодят как вызовы обычных функций и получается бесконечная рекурсия:
Если хотите устроить такой обмен, используйте либо QTimer::singleShot(0, go/back), чтобы поток вернулся в цикл обработки событий, прежде чем вызывать метод. Либо откажитесь от такого циклического вызова. Кстати зачем он вам? Возможно вы решаете не ту проблему. |
|
cupersuper | Дата 10.11.2015, 20:11 |
Объект 1 класса отсылает сигнал объекту 2 класса, тот при получении сигнала, отвечает. Получается некий цикл. Программа завершается с ошибкой через 3580 таких итераций на Qt4.8, через 3683 на Qt4.7. Не пойму почему крашится.
test2.zip ( 2.49 килобайт ) Кол-во скачиваний: 141 |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 23.4.2024, 17:03 |