СИГНАЛ в главном потоке, СЛОТ - в дочернем, Как правильно связать? |
Здравствуйте, гость ( Вход | Регистрация )
СИГНАЛ в главном потоке, СЛОТ - в дочернем, Как правильно связать? |
pelican |
31.8.2009, 16:06
Сообщение
#1
|
Студент Группа: Участник Сообщений: 15 Регистрация: 31.8.2009 Из: Россия, г. Кострома. Пользователь №: 1038 Спасибо сказали: 0 раз(а) Репутация: 0 |
Привет всем! Собственно, вопрос в заголовке...
Я пытался вызвать connect() в конструкторе класса главного окна. Сам класс потока объявлен в отдельном заголовке.
Проект компилируется, запускается, но connect() не срабатывает и консоль выводит:
В потоковой функции run(), только функция exec() (извините за тавтологию). Подозреваю, что connect() лучше вызвать в run(). Но, чтобы не "лепить", решил спросить. |
|
|
kwisp |
31.8.2009, 16:23
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
pelican,
по-моему библиотека говорит тебе что нет может слот найти. причем тут в каком месте ты соединяешь сигнал со слотом. Шлее пишет что можно соединять где хочешь.(зачеркнуто, я этого не говрил. ) Сообщение отредактировал kwisp - 31.8.2009, 16:34 |
|
|
pelican |
31.8.2009, 16:30
Сообщение
#3
|
Студент Группа: Участник Сообщений: 15 Регистрация: 31.8.2009 Из: Россия, г. Кострома. Пользователь №: 1038 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата по-моему библиотека говорит тебе что нет может слот найти. причем тут в каком месте ты соединяешь сигнал со слотом. Шлее пишет что можно соединять где хочешь. Да, это я понял, но слот есть! Только в файле класса потока "addthread.cpp". Почему слот ищется в "mainwindow.cpp"? |
|
|
kwisp |
31.8.2009, 16:33
Сообщение
#4
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
pelican |
31.8.2009, 16:43
Сообщение
#5
|
Студент Группа: Участник Сообщений: 15 Регистрация: 31.8.2009 Из: Россия, г. Кострома. Пользователь №: 1038 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата вот Это я видел... Ладно, сам лопатить буду. |
|
|
Litkevich Yuriy |
31.8.2009, 17:44
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
pelican |
1.9.2009, 12:44
Сообщение
#7
|
Студент Группа: Участник Сообщений: 15 Регистрация: 31.8.2009 Из: Россия, г. Кострома. Пользователь №: 1038 Спасибо сказали: 0 раз(а) Репутация: 0 |
Object::connect: No such slot QThread::add() in .\mainwindow.cpp:28 по моему выделенное более интересноВкурил доки - добавил Q_OBJECT в определение класса потока, подтесал ещё кое-что по мелочам. И всё заработало! Спасибо за внимание. |
|
|
gigabyte |
1.9.2009, 17:05
Сообщение
#8
|
Студент Группа: Участник Сообщений: 20 Регистрация: 9.8.2009 Пользователь №: 992 Спасибо сказали: 2 раз(а) Репутация: 1 |
Object::connect: No such slot QThread::add() in .\mainwindow.cpp:28 по моему выделенное более интересноВкурил доки - добавил Q_OBJECT в определение класса потока, подтесал ещё кое-что по мелочам. И всё заработало! Спасибо за внимание. В идеале результат можно было бы выставить сюда в виде заголовка класса, чтоб те у кого появится эта проблема в дальнейшем видели решение, а не по новой плодили подобные темы |
|
|
pelican |
1.9.2009, 17:31
Сообщение
#9
|
Студент Группа: Участник Сообщений: 15 Регистрация: 31.8.2009 Из: Россия, г. Кострома. Пользователь №: 1038 Спасибо сказали: 0 раз(а) Репутация: 0 |
В идеале результат можно было бы выставить сюда в виде заголовка класса, чтоб те у кого появится эта проблема в дальнейшем видели решение, а не по новой плодили подобные темы
|
|
|
reich |
2.9.2009, 9:41
Сообщение
#10
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 31.7.2009 Пользователь №: 966 Спасибо сказали: 1 раз(а) Репутация: 0 |
Без определения макроса Q_OBJECT в классе не будут доступны ключевые слова Qt типа signals, slots, emit и т.п. Потому, не забывайте определять Q_OBJECT в том классе, в котором хотите использовать сигналы/слоты
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 13:34 |