Russian Qt Forum
Ноябрь 23, 2024, 11:36
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Проясните мысли о сигналах!
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Проясните мысли о сигналах! (Прочитано 7462 раз)
andrek
Гость
Проясните мысли о сигналах!
«
:
Август 11, 2005, 06:31 »
Всем привет!
Занимаюсь с Qt совсем недавно, читаю документация и паралельно пытаюсь доработать небольшой проект qfaxreader из sourceforge.net (если кому интересно), это программа для просмотра факсов, я добавил в нее найстройку и прием факсов, это работает.
Далее, есть у меня в основном классе CMainWindow cтатусбар, и захотелось мне добавить в него информацию для пользователя в картинке.
Сделал это через самодельный сигнал, все работает, загорается красная лампочка при нажатии кнопки "факс на автомате", зеленая при нажатии на кнопку "прием факса".
Само действие (прием факса и включение на авто) выполняю через QThread и запуск Qprocess - это тоже работает.
Так вот сама проблема:
Хочу сделать чтобы при самом процессе приема факса у меня индикатор моргал,
но не могу вызвать в thread сигнал из СMainWindow ??
Думаю что решение проблемы очень простое не немогу понять где грабли.
Записан
Dair
Гость
Проясните мысли о сигналах!
«
Ответ #1 :
Август 11, 2005, 12:20 »
например:
в классе, порожденном от QThread (пусть будет FaxThread) сделать два сигнала, что-нить типа started() и finished().
finished() пробросить из QProcess::processExited()
Индикатору сделать слоты startBlinking() и stopBlinking() (например).
При создании объекта класса FaxThread законнектить сигналы на слоты.
Всё должно работать.
Я бы сделал сложнее, впрочем: в индикаторе завел бы различные состояния (On, Off, Blinking) и слотами их переключал друг между другом.
Записан
andrek
Гость
Проясните мысли о сигналах!
«
Ответ #2 :
Август 11, 2005, 12:42 »
спасибо за ответ!
согласен что можно сделать посложнее, но мне хотябы нужен минимальный функционал.
у меня в классе FaxThread не получается создать signals, делаю все как в документации.
ошибка уже при линковке:
undefined reference to `vtable for CFaxRun'
Записан
andrek
Гость
Проясните мысли о сигналах!
«
Ответ #3 :
Август 11, 2005, 12:50 »
я думаю дело в том что QThread не наследуется от QObject.
Записан
Dair
Гость
Проясните мысли о сигналах!
«
Ответ #4 :
Август 11, 2005, 12:56 »
ах да, точно... :-)
значит, не в FaxThread, а в FaxProcess ;-)
Кстати, а зачем их мешать между собой?.. Может, проще избавиться от QThread вообще и пользоваться исключительно QProcess'ом?..
Записан
andrek
Гость
Проясните мысли о сигналах!
«
Ответ #5 :
Август 11, 2005, 14:33 »
Я вот тоже подумываю об избавлении QThread,
просто схватился сразу по аналогии с системным программированием.
Записан
dilshodm
Новичок
Offline
Сообщений: 18
Проясните мысли о сигналах!
«
Ответ #6 :
Август 12, 2005, 05:52 »
А если все же надо отправлять событие из другого потока (QThread), то смотреть в сторону QApplication::postEvent(...)
Записан
С уважением,
Dilshod
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...