Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 31.1.2011, 21:58 |
он отсылает(в данном примере) 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 раз в пустую. Поэтому нужна фича, которая укажет программе, что как только последний сигнал от последнего виджета принят, обработан и выходные параметры добавлены в вектор, вот только тогда выслать наконец сигнал с ним. Как это сделать? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 16:08 |