crossplatform.ru

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


  Ответ в Как узнать, завершил ли свою работу виджет?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 31.1.2011, 21:58
 
Цитата(QMainWindow @ 31.1.2011, 23:15) *
он отсылает(в данном примере) 500 раз
значит столько раз насоединял. Сколько соединений, столько событий
QMainWindow Дата 31.1.2011, 21:15
  Число виджетов, отсылающих сигнал неизвестно (ну можно найти их число, но это долго и нудно). Проблема в том, что вместо отсыла сигнала РОВНО ОДИН раз, он отсылает(в данном примере) 500 раз (т.е. 499 в пустую).

А по поводу указателей и цикла - попробую!)
Rocky Дата 31.1.2011, 20:41
 
Цитата
И каждый следующий раз в массиве появляется на одно значение больше и уж в 500й раз он содержит все сразу

Так а в чем вообще проблема? Проверяй длину массива после добавления нового значения. Либо поднятые флаги в зависимости от того, как там у тебя реализовано. Если длина массива (количество поднятых флагов) равна количеству виджетов - значит это был последний... Или я что-то не так понял?
Алексей1153 Дата 31.1.2011, 20:18
  пытаюсь осознать...

кое как понял фразу ) Но вот всё равно сигналы\слоты тут не нужны

в цикле пробегаешься по массиву указателей, у каждого виджета зовёшь метод "проверки", сохраняешь результат, вернутый из метода. И так до конца
QMainWindow Дата 31.1.2011, 20:13
  Имеется ввиду такая ситуация:
В некоторый момент времени Г.О. приказывает всем виджетам сделать проверку. Соответствующий слот в виджете выполняет ее и отсылает сигнал с данными в главное окно. Все, на этом работа виджета (его слота) закончилась.
Алексей1153 Дата 31.1.2011, 20:05
  а что понимается под завершением работы ?

мне кажется, тут не сигналы нужны, а массив указателей на виджеты - его надо сканировать и забирать информацию через методы виджетов
QMainWindow Дата 31.1.2011, 19:48
  Добрый вечер!
Вопрос в названии. Есть много виджетов, которые при достижении определенного условия посылают сигнал с параметрами в слот главного окна. Там слот по очереди их обрабатывает и выходные данные записывает в вектор-массив. А затем после обработки данных со ВСЕХ виджетов отсылает этот массив в эти же виджеты. На деле у меня сигнал посылается не один раз со ВСЕЙ информацией, а (например если виджетов 500 штук) - 500 раз. И каждый следующий раз в массиве появляется на одно значение больше и уж в 500й раз он содержит все сразу. Комп работает 499 раз в пустую. Поэтому нужна фича, которая укажет программе, что как только последний сигнал от последнего виджета принят, обработан и выходные параметры добавлены в вектор, вот только тогда выслать наконец сигнал с ним. Как это сделать? :)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 16:08