crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Потоки , как и что ., Нужна помощь в создание потока
Antiglobalist
  опции профиля:
сообщение 14.5.2010, 14:32
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 29.3.2010
Пользователь №: 1574

Спасибо сказали: 0 раз(а)




Репутация:   0  


Пытался сам разобраться с потоками , но результат был не очень , нуждаюсь в советах.
Есть программа с архитектурой модель-вид-контроллер , которая рисует графики и сохраняет данные в вектор.
Я в мэйн файле создаю 3-и объекта (Мод Вид Контр) И прописываю там между ними связи через сигналы и слоты.
В моделе есть вектор в который записываются данные.

Теперь основное , нужно создать поток в который мы закидываем указатель на вектор и в онлайн режиме должен строиться график по значениям интеграла функций из вектора.
ВОт, мне нужна подсказка где его создать и как соединить , пробывал в мeйн файле создавать объект класса Thread, но при задержке(usleep();) вставала вся программа ...
В самом потоке создаю объект аналог Вид'а и осуществляю обмен информацией с моделью.

Если где-то про это подробно написано , прошу дайте почитать :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.5.2010, 16:13
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Antiglobalist @ 14.5.2010, 18:32) *
В самом потоке создаю объект аналог Вид'а
виджеты, а представление (вид) таковым и является, могут находится только в главном потоке, это указано в документации.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Денис_*
сообщение 14.5.2010, 16:21
Сообщение #3





Гости








    


Цитата(Litkevich Yuriy @ 14.5.2010, 16:13) *
Цитата(Antiglobalist @ 14.5.2010, 18:32) *
В самом потоке создаю объект аналог Вид'а
виджеты, а представление (вид) таковым и является, могут находится только в главном потоке, это указано в документации.



Создавал его в главном потоке и соединял с контроллером и моделью , в итоге при задержке ничего не рисовалось поэтапно (рисовал на сцене и на вие отображал , после начертание одной линии ставил сцену в вию но ничего не было , появлялась только конечная сцена с готовым рисунком)И все же при остановке вся программа останавливалась а не отдельный поток.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.5.2010, 16:25
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_Денис_* @ 14.5.2010, 20:21) *
в итоге при задержке
понятное дело, ты усыпил программу. но понятно только зачем тебе задержка
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Antiglobalist
  опции профиля:
сообщение 14.5.2010, 16:54
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 29.3.2010
Пользователь №: 1574

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 14.5.2010, 17:25) *
Цитата(Гость_Денис_* @ 14.5.2010, 20:21) *
в итоге при задержке
понятное дело, ты усыпил программу. но понятно только зачем тебе задержка


Мне нужно график рисовать с задержкой , т.е каждую секунду например одну линию , но показывает только конечный рисунок , мне нужно чтобы этот поток только вставал а главный работал , а такое ощущение что все в одном потоке ...

А все , сделал небольшую перестановку и все заработало как надо , просто надо было новый Вид только с новым потоком связать .
Спасибо вы мне помогли =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.5.2010, 17:46
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


яб просто по таймеру вызывал бы метод, который строит часть графика, а по завершению этого метода взводил бы таймер заново. Тогда и потоков не надо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Antiglobalist
  опции профиля:
сообщение 15.5.2010, 17:37
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 29.3.2010
Пользователь №: 1574

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 14.5.2010, 18:46) *
яб просто по таймеру вызывал бы метод, который строит часть графика, а по завершению этого метода взводил бы таймер заново. Тогда и потоков не надо




Да препод сказал сдеалать в программе обработчик - кидать в новый поток вектор и что б он по данным строил график =)
Поток не моя инициатива =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fordil
  опции профиля:
сообщение 16.5.2010, 11:03
Сообщение #8


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 26.4.2010
Пользователь №: 1659

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здарова, Ден :)
Задания действительно муть )

Делаешь потомка QThread с полем - указателем на твою модель. То есть ты уже получаешь доступ к твоему вектору. Теперь обрабатываешь какие надо циферки/букофки и как только завершил какой-то этап обработки посылай сигнал на виджет, чтобы он рисовал график.
А чтобы создать задержку, используй таймер в самом потоке. Ну как-то так ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.4.2024, 6:35