Russian Qt Forum
Ноябрь 24, 2024, 10:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTimer в классе не наследуемом от QObject  (Прочитано 5489 раз)
daspisch
Гость
« : Февраль 12, 2010, 13:24 »

что-то не получается никак это запустить, может кто подскажет как это обойти, или обязательно прикручивать QObject?
Записан
voronElf
Гость
« Ответ #1 : Февраль 12, 2010, 13:32 »

а ты коннектишь сигнал от таймера к этому же классу (не наследнику QObject) ? Тогда не будет слот запускаться. Для классов, не наследуемых от QObject механизм сигналов-слотов не действует.

Наследуй от QObject.

ну или можешь попробовать к другому классу-наследнику QObject приконектится, но не знаю, сработает или нет, если класс-владелец объекта не наследник QObject
Записан
Amigo_sa
Гость
« Ответ #2 : Февраль 12, 2010, 13:44 »

или можешь попробовать к другому классу-наследнику QObject приконектится, но не знаю, сработает или нет, если класс-владелец объекта не наследник QObject
конечно сработает. Единственное, что может вызвать крах - это коннект сигналов таймера к объекту из другого потока.
Записан
Kolobok
Гость
« Ответ #3 : Февраль 12, 2010, 16:07 »

Единственное, что может вызвать крах - это коннект сигналов таймера к объекту из другого потока.
Это почему?
Записан
Amigo_sa
Гость
« Ответ #4 : Февраль 12, 2010, 16:55 »

Единственное, что может вызвать крах - это коннект сигналов таймера к объекту из другого потока.
Это почему?
По опыту. Мое приложение падало, когда я пытался обработать слоты на сигналы, сэмиченные в другом потоке.
Записан
Kolobok
Гость
« Ответ #5 : Февраль 12, 2010, 18:37 »

Наверное делал Qt::DirectConnection
Записан
mcrads
Гость
« Ответ #6 : Февраль 12, 2010, 21:27 »

Это редкие случаи, искать надо в другом, копать при пошаговой отладке. Из моего опыта такого ни разу не происходило.

Так что можно сдело коннектить - но если будут ошибки - по шажочкам выверять, комментить - и искать строчку с ошибкой.
Между потоками нет проблем - 90%
Записан
Amigo_sa
Гость
« Ответ #7 : Февраль 13, 2010, 00:10 »

хм. действительно, в ассистенте написано, что
Цитировать
In multithreaded applications, you can use QTimer in any thread that has an event loop.
Скорее всего мое приложение падало, потому что я в слоте я дергал объекты, созданные в другом потоке... надо будет перепроверить. Спасибо за замечание  Улыбающийся
Записан
daspisch
Гость
« Ответ #8 : Февраль 15, 2010, 12:22 »

всем спасибо, предпочёл отправлять событие главному окну чтобы оно запускало сво
Записан
daspisch
Гость
« Ответ #9 : Февраль 15, 2010, 17:43 »

спасибо за советы, всё сделал.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #10 : Февраль 15, 2010, 18:13 »

Цитировать
ну или можешь попробовать к другому классу-наследнику QObject приконектится, но не знаю, сработает или нет, если класс-владелец объекта не наследник QObject
мужики вы че? коннектить можно только наследников QObject (да еще чтобы макрос Q_OBJECT был) - в нем ведь сигналы и слоты собственно описываются... а иначе как оно заработает?
Записан
voronElf
Гость
« Ответ #11 : Февраль 16, 2010, 07:31 »

Цитировать
мужики вы че? коннектить можно только наследников QObject

да, и я о том же
оба объекта, которые коннектятся - наследники QObject (с Q_OBJECT конечно), все нормально. Просто один из коннектящихся объектов является внутренней переменной объекта-не-наследника-QObject.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.244 секунд. Запросов: 23.