Логика в том что эвент посылается объекту. Например QMouseEvent посылается виджет под мышкой, а QKeyEvent - объекту в фокусе. Ключевое - объект всегда известен.
Сигнал же посылается "в никуда" - когда кнопка эмитит сигнал pressed() она не знает кто к ней приконнекчен, сколько их и приконнекчен ли кто-то. Она просто посылает сигнал. Если есть подписчики - хорошо, нет подписчиков - тоже хорошо. Таким образом обеспечивается разделение интерфейсов объектов - у одного объекта есть сигналы, у другого - слоты и они друг о друге вообще ничего не знают.
Можно ли сделать это на эвентах? Можно - объект мог бы посылать сам себе эвент QClicked а мы бы его ловили через эвент фильтр. Но это неудобно, потому что вместо функции с нулем-двумя параметрами пришлось бы делать миллиард мелких структур-событий.
Посмотрите на количество сигналов у некоторых классов и прикиньте если бы на каждый метод была бы своя структура.
Да все понятно с механизмом , отличия ясны но вы уперслись в Pressed хрен с ним анажатие кнопки с символом
я не против слотовой системы , в лине на ней все построено и это как бы нормально даже удобно но какого лешего банальная задача делается только через создание ГЛОБАЛЬНОГО фильтра всех событий ? бред
вотсижу тыкаю и гнашел еще один вопрос : как у формы моей мсоздать свой слот чтобы его было видно из дезайнера ?
public slots:
void MySlot(const QString &t);
public Q_SLOTS:
void MySlot(const QString &t);
оба не видятся в дезайнере ...
или это вообще так сказть"дизайнер чтобы было " ?
UPD: Вопрос снят , нашел где дл ядизайнер аэто прописывать
получается :
1- создаем слот в хедере
2-описываем его в сорце
3- тыкаем в создание слотов дизайнера и пишим его там ручками ибо даже ctrl+v тамне пашет , а отпарсить секцию в хедере религия н епозволяет
4- в редакторе его добавляем
все работает ..
но при этом редактор событий и слотов постоянно сбрасывается , размер колонок порядок и прочее афигительная юзабельность ... ну да ладненько ...
новсе же мне интересно неужелине возможнг без евент фильтра КНОПОЧКУ ОПРОСИТЬ ... рою дальше буржуйские форумы ... вот угораздило же задаться таим простым овпросом ... как в текстовомполе кнопочку перехватить ....