Всем доброго здравия!
Допустим есть такое приложение:
И допустим, что действие для кнопки 2 находится в компетенции самого виджета, но вот действие для кнопки 1 - глобальное, т.е. находится в компетенции главной формы (что-нибудь типа открытия файла). В классе главной формы имеем паблик слот process_something().
1. При проектировании формы виджета мы вообше не видим главную форму, т.е. не имеем возможности обратиться к ее слотам. Т.е. в дизайнере форм получается вообще не судьба?
2. В коде виджета мы конечно же имеем доступ к главной форме через свойство parent. Получается, вижу пока что только пару вариантов:
- в коде виджета инклудить MainWindow.h, преобразовывать parent к MainWindow и вызывать его слот;
- создать глобально "хранилище" глобальных экшинов и инклудить это хранилище в главной форме и во всех виджетах.
Какие еще есть способы (более элегантные, простые или правильные) для взаимодействия дочернего окна/виджета с родительским? ВОзможно ли сделать привязку к сигнагу дочечернего виджета слота родительского окна прямо в дизайнере?