Вопрос о сигналах и слотах Qt для начинающих
-
03-07-2019 - |
Вопрос
Я только начал изучать Qt, это мой первый опыт работы с графическими интерфейсами.Пока это были только консольные приложения и немного SDL.
Я начинаю сильно путаться во всей этой истории с сигналами и слотами.Я только что закончил Учебное пособие 11.Когда вы нажимаете shoot, кнопка shoot посылает сигнал, который подключается к разъему в Пушечном поле, для включения функции "стрелять".Функция съемки запускает таймер, который каждые 5 мс подает сигнал о перемещении съемки вперед на кадр.Я все это понимаю.
Я поэкспериментировал с вводом цикла for от 0 до 999, который отправил i в выходные данные приложения, чтобы я мог увидеть, что произошло.Вот тут-то я и начинаю путаться.Иногда он начинает печатать 0, 1, 2, 3 и т.д., вводит несколько (скажем, 10), затем запускает снимок, затем, когда снимок исчезает с экрана, он печатает остаток до 999.В других случаях он ничего не печатает, выполняет выстрел, затем печатает от 0 до 999.В других случаях он печатает все, а затем производит выстрел.Я просто сбиваю себя с толку, просматривая выходные данные в Qt Creator одновременно с запуском моей программы?
Решение
Это проблема с фреймворками, основанными на цикле обмена сообщениями, где все выполняется в одном основном потоке.Пожалуйста, ознакомьтесь с моим ответом на аналогичный вопрос здесь.