Название: Сигналы и слоты Отправлено: U.B.M. от Октябрь 19, 2012, 09:06 Доброго времени суток!
Создаю окно класса MyParent (наследник QMainWindow), там есть кнопка - по нажатию создается окно класса MyChild (наследник QDialog), в диалоговом окошке есть кнопка - возникает вопрос: как по нажатию кнопки в диалоговом окошке поменять название главного окошка, используя сигналы и слоты? Делал так: В MyParent в public slots делаю функцию на изменение заголовка, в Mychild привязываю нажатие кнопки к этому слоту. Всё компилируется, но не работает. Как правильно сделать? P.S. Перекрестный include - это нормально или не приветствуется? Название: Re: Сигналы и слоты Отправлено: U.B.M. от Октябрь 19, 2012, 09:27 Вроде разобрался сам.
Но вопрос про перекрёсный include (в MyParent.cpp #include <MyChild.h> и наоборот) остается в силе. Может из этого что-нить плохое выйти? Название: Re: Сигналы и слоты Отправлено: Пантер от Октябрь 19, 2012, 09:31 Плохо делать такие завязки.
Название: Re: Сигналы и слоты Отправлено: U.B.M. от Октябрь 19, 2012, 09:36 То что плохо - ответ предполагаемый и ожидаемый :-\
А можно уточнить - чем плохо кроме того что получается трудный к восприятию спагетти-код? А как правильнее делать? в контексте моего вопроса про изменение заголовка родительского окна по нажатию кнопки дочернего? Название: Re: Сигналы и слоты Отправлено: Пантер от Октябрь 19, 2012, 09:38 В MyChild определяешь сигнал void changeHeader (const QString &text) и в MyParent коннектишь этот сигнал на свой слот. В итоге, MyChild ничего не должен знать о MyParent.
Название: Re: Сигналы и слоты Отправлено: Пантер от Октябрь 19, 2012, 09:39 А можно уточнить - чем плохо кроме того что получается трудный к восприятию спагетти-код? Чем меньше зависимостей, тем лучше возможность повторного использования кода. Название: Re: Сигналы и слоты Отправлено: U.B.M. от Октябрь 19, 2012, 09:44 В MyChild определяешь сигнал void changeHeader (const QString &text) и в MyParent коннектишь этот сигнал на свой слот. В итоге, MyChild ничего не должен знать о MyParent. Благодарю. Щас попробую :) |