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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Сигнал "что-то изменилось". Как вместо 10 сигналов сделать 1?  (Прочитано 12886 раз)
Dendy
Гость
« Ответ #15 : Январь 20, 2009, 05:33 »

2 break

В программировании нет маленькой вероятности, большой вероятности, очень маленькой вероятности и т. п. Вероятность в программировании определяется булевской переменной: или она есть, или её нет. Никаких "сомнений" быть не может. Вы описали проблему и решили её неправильно. Или вы думаете что ассерты в программах придумали параноики?

Каждый модуль должен выполняться строго дизайну и документации. Если интерфейс предполагает что выходить за пределы диапазона нельзя - значит программа должна завершаться аварийно, потому что образовалась проблема в вызывающем коде. Если строки (153) не оказалось, а по дизайну она быть обязана - возможно в вызывающем коде запоролся стек или дал сбой алгоритм и следующим вызовом вы получите команду удаления всей вашей базы данных, которая отработает без ошибок.

P.S. Дальнейший оффтоп на эту тему не приветствуется. Просьба по существу.
Записан
Danila_Bagrofff
Гость
« Ответ #16 : Декабрь 11, 2009, 09:39 »

а почему нельзя просто использовать обработчики событий?

хотя... тоже ведь события нужно отбирать так, чтобы они не дублировали друг друга при вызове функций?

Но здесь, по-моему, проще отобрать нужный список событий, чтобы не было дублежа и вызывать функции необходимые по данному действию...
Записан
spectre71
Гость
« Ответ #17 : Декабрь 11, 2009, 09:55 »

Вы заканектили все имеющиеся сигналы к одному слоту. На оперделенное действие может испускаться 1-3 разных сигнала, вот и получаем такое поведение.
Ну это понятно.

Выберите только те сигналы, которые действительно нужны для работы.
Вопрос именно в этом - каг это сделать? Каг учесть реакцию на любое действие, и при этом использовать только нужные сигналы?

Реакция на любое действие - бессмысленна.
Определи сперва на какие действия должна быть реакция. После этого уже прочитай описание сигналов и выбери необходимое подмножество, а не складывай все подряд в кучу.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #18 : Декабрь 11, 2009, 13:44 »

Хочется избавиться от утомительного анализа "а не было ли сначала др. сигнала (старшего)?" Разбить функционал tools_update на части можно, но проблема остается. Я бы сначала в tools_update прикинул  не является ли действие холостым, т.е. уже выполнено предыдущими действиями (хранил бы какие-то "текущие" данные и сравнивал их с пришедшими). Если совпадают - не лезть к диску, не обновлять UI а просто выйти.  Вообще чем занимается tools_update?
Записан
Dendy
Гость
« Ответ #19 : Декабрь 12, 2009, 04:21 »

Вообще чем занимается tools_update?

Мне кажется автор оригинального кода или решил проблему или давно про неё забыл.
Записан
SASA
Гость
« Ответ #20 : Декабрь 15, 2009, 11:26 »

Извините за офтоп. Но мимо такого пройти не мог.

Стремитесь думать и создавать программу в процедурном стиле, когда операции выполняются синхронно. А не в событийно-обьектном, когда функционал разобран по отдельным независящим друг от друга обьектам и их методам. Если метод сейчас выполняться не должен - эта проверка должна быть вынесена наружу, а выполнение самого метода заблокировано. А не лепить костыль, добавляя эту же проверку внутрь самого метода.

Спорно, а зачастую не верно.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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