Название: connect сам на себя Отправлено: Heggi от Мая 22, 2015, 14:59 Пишу обертку для работы с OwnCloud, отнаследовал QNetworkAccessManager. Теперь хочу перехватывать сигнал finished, чтобы логику разборки ответа оставить внутри класса. Для этого делаю коннект сигнала finished на слот finish.
Оно работает так даже, но ИМХО это какой-то костыльный метод. Может есть более правильный вариант перехватить сигнал finished внутри класса? Код: class OwnCloud : public QNetworkAccessManager Название: Re: connect сам на себя Отправлено: Swa от Мая 22, 2015, 15:20 Это не костыльный метод, это вполне нормальная обработка события. Не понимаю, что вас смущает. Подписывать свой слот на свой же сигнал - это не костыль.
Название: Re: connect сам на себя Отправлено: Heggi от Мая 22, 2015, 15:23 Именно это и смущает, что приходится подписывать самого на себя.
Но раз это нормально, то ладно... Название: Re: connect сам на себя Отправлено: kambala от Мая 22, 2015, 15:41 если бы твой код пускал сигнал, тогда можно было бы вызвать метод напрямую, минуя сигналы-слоты. а так другого выхода нету.
Название: Re: connect сам на себя Отправлено: Akon от Мая 29, 2015, 11:59 А нельзя ли QNetworkAccessManager сделать членом OwnCloud?
Название: Re: connect сам на себя Отправлено: MaxoBik от Мая 31, 2015, 14:50 А нельзя ли QNetworkAccessManager сделать членом OwnCloud? Что это принципиально изменит? Все равно придется подписываться на сигнал только уже к члену класса. Если нет возможности добраться по иерархии классов до метода, который и вызывает сигнал переопределив его, то подписывания на сигнал это самый простой способ. Название: Re: connect сам на себя Отправлено: __Heaven__ от Июня 01, 2015, 11:13 Код Можно проще записать Код
Название: Re: connect сам на себя Отправлено: Akon от Июня 01, 2015, 20:44 Цитировать Что это принципиально изменит? Во-первых, снимется комплекс подписывания на собственные сигналы, а во-вторых (главное), это более правильно с архитектурной точки зрения, т.к. от открытого наследования в данном случае появляется ненужный (или даже неконсистентный) интерфейс. |