![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Litkevich Yuriy |
![]()
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Никак не могу понять, как же правильно работать со встроенным в QObject таймером.
В данный момент работа, схематично, выглядит так: есть несколько объектов разных классов, которые создаются по цепочке, один в другом. В каждом может быть таймер и он используется по одной и той же схеме.При завершении программы виндовоз показывает сообщение об ошибке ("Память не может быть read") Такая ситуация наблюдается у всех моих программ, которые используют таймер встроенный в QObject. И в разных версиях Qt, начиная с Qt 4.3.5 |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
факт, проблема была не в таймере.
был такой код: Говоря языком связистским, мне нужно было "поставить шлейф". Т.е. вместо штатного класса использовать заглушку, чтобы проверить часть программы без всяких коммуникаций с внешним миром.Я решил, что удобнее будет иметь переключалку в pro-файле. Создал каталог imitators и положил в него модифицированные файлы spcontroller.{h|cpp}, а в pro-файле сделал так: весь проект очистил, и собрал. Красота всё работает.Пока тестил, поменял немного интерфейс в spcontroller.h Всё опять очень хорошо, вот только при завершении работы стала возникать авария. Авария прекращалась когда я комментировал всю работу с таймерами. Это меня отвлекло. Пришлось собирать проект по шагам, добавляя файл за файлом и проверяя как работает.Сначала я убедился, что таймеры действительно не причём. Ну а когда дошла очередь до spcontroller (Собирал сразу версию с заглушкой, без штатных файлов. ) тут-то я и увидел проблему. Т.к. компиллер на отрез отказался компилировать проект. Причина: #include "spcontroller.h" - говорит компиллеру искать файл в каталоге данного файла. тогда я сделал так: #include <spcontroller.h> - говорит компиллеру искать файл в каталоге указанном с помощью ключа -I. Но и так компилироваться не будет, т.к. каталог imitators не находится в списке включаемых. И того нужно было ещё в pro-файл вписать:
Разумеется если я добавлю штатные файлы в каталог с основными исходниками, опять начнутся проблемы. Т.к. каталог с основными исходниками уже есть в списке включаемых файлов. Принципиально проблемы-то начались именно из-за того, что я поменял интерфейс. Но очень "удачно" П.С. Вот такая вот у меня история сегодня случилась. П.ПС. 2:41 НСК, можно теперь и спать с чистой совестью. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 16.7.2025, 11:33 |