Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT] GUI thread & child QThread 
V
    Опции темы
Kappac
Дата 24.4.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 30.9.2006
Где: Украина, Киев

Репутация: нет
Всего: нет



Доброго времени суток! 
Подскажите, плиз, или ткните где почитать(что было бы лучше), как передать управление из дочернего потока Qt-проги в ГУИ-поток при возникновении определенного условия.
Заранее благодарен.
--------------------
                                                                                     
PM MAIL ICQ Skype   Вверх
Ken
Дата 27.4.2007, 23:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 31.3.2007

Репутация: 1
Всего: 4



В Qt4 cоздаешь сигнал в дочерном потоке (точнее в классе реализиющий поток) и слот там, где хочешь получить управление. Потом связываешь через connect добавляя в качесвте пятого аргумента Qt::QueuedConnection.
PM MAIL   Вверх
Kappac
Дата 28.4.2007, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 30.9.2006
Где: Украина, Киев

Репутация: нет
Всего: нет



Большое спасибо! Обязательно попробую!

Добавлено через 8 минут и 6 секунд
Большое спасибо за наводку!  smile 
--------------------
                                                                                     
PM MAIL ICQ Skype   Вверх
BabySG
Дата 4.2.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 26.9.2005

Репутация: нет
Всего: нет



Цитата(Ken @ 27.4.2007,  23:27)
В Qt4 cоздаешь сигнал в дочерном потоке (точнее в классе реализиющий поток) и слот там, где хочешь получить управление. Потом связываешь через connect добавляя в качесвте пятого аргумента Qt::QueuedConnection.

Объясните, плиз, зачем явно это указывать, если:
Qt::AutoConnection -- если источник события находится в том же потоке, что и приёмник, то будет использован режим Qt::DirectConnection, в противном случае -- Qt::QueuedConnection
а по умолчанию параметр == AutoConnection?
PM MAIL WWW   Вверх
JackYF
Дата 5.2.2008, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(BabySG @  4.2.2008,  20:23 Найти цитируемый пост)
а по умолчанию параметр == AutoConnection? 

Потому что есть случаи, когда требуется отложенный вызов в любом случае, и надо указывать QueuedConnection.
У меня по крайней мере два случая было, когда такое требовалось.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
BabySG
Дата 5.2.2008, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 26.9.2005

Репутация: нет
Всего: нет



JackYF, 
не поняли друг друга smile я имел ввиду именно этот случай, описаный выше.
PM MAIL WWW   Вверх
JackYF
Дата 5.2.2008, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



BabySG, извини раз в каждый месяц отвечаю в теме, не читая её всю, и каждый раз мне это выходит косяком  smile 
Тогда вопрос ясен и закономерен. Честно говоря, механизм определения того, что в каком потоке находится (при срабатывании сигнала), мне не понятен, и я стараюсь указывать явно.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
aaa82
Дата 16.9.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.7.2007

Репутация: нет
Всего: нет



мне нужно завести QThread, запустить в нём итерационный процесс и отслеживать значение счётчика при помощи ProgressBar
ProgressBar находится в другой функции (из неё же запускается итерационный процесс в QThread)

напишите простой примерчик пжалста

Это сообщение отредактировал(а) aaa82 - 16.9.2009, 13:54
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.