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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDialog и QThread  (Прочитано 4292 раз)
Vlcyrex
Гость
« : Февраль 10, 2009, 21:59 »

Извините за три глупых вопроса Улыбающийся
Ситуация следующая - работает основная программа, в параллельном потоке идёт пинг соседних компьютеров. Если пинг не проходит появляются окна QDialog с сообщениями. Вопросы:

1). Когда делаю параллельный поток для пинга, если использую QTimer, то параллельности уже нет - пинг тормозит основную программу, если просто использую бесконечный цикл со sleep(), то всё норм. Кто знает почему?))

2). Нужно чтобы появлялось бесконечное множество окон. В цикле следующая строка
Mywarn * my_warn = Mywarn();
Где Mywarn наследник класса QDialog.
В итоге указатель перемещается по памяти, создавая новые окна.
Вопрос: когда я нажимаю кнопку Close на старых окнах - память очищается?
В QDialog установлен флаг WFlags f=Qt::WDestructiveClose.

3). Стала появлятся следующая ошибка, если при создании первого такого окна - основная программа раскрыта на экран, то программа падает по segmentation fault. Если же дело происходит в трее - то нет. падает программа на строке, которая выше.
Записан
Swappp
Гость
« Ответ #1 : Февраль 10, 2009, 22:12 »

Вся работа с GUI должна происходить в основном потоке.
Цитировать
1). Когда делаю параллельный поток для пинга, если использую QTimer, то параллельности уже нет - пинг тормозит основную программу, если просто использую бесконечный цикл со sleep(), то всё норм. Кто знает почему?))
К какому потоку относится QTimer?
Записан
Vlcyrex
Гость
« Ответ #2 : Февраль 10, 2009, 22:25 »

К дочернему. Где происходит пинг.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Февраль 10, 2009, 22:42 »

В каком потоке создается QDialog?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Vlcyrex
Гость
« Ответ #4 : Февраль 11, 2009, 16:10 »

QDialog создаётся в основном потоке по сигналу из дочернего-паралельного.
Записан
ритт
Гость
« Ответ #5 : Февраль 11, 2009, 16:16 »

QDialog создаётся в основном потоке по сигналу из дочернего-паралельного.
как может быть дочерний поток одновременно параллельным? Улыбающийся
я понимаю что имелось в виду, но всё-равно звучит несуразно...как пересекающиеся параллельные прямые Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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