Название: Вызовется ли слот, если указатель на объект изменили после connect() ? Отправлено: xintrea от Июль 07, 2016, 16:42 Есть у меня виджет, в котором при нажатии кнопки cancel испускается сингнал cancelDownload. Он связывается с указателем на объект QNetworkReply *networkReply;
Код: networkReply=webManager.get(request); В процессе работы может оказаться ситуация, что вместо данных придет редирект, и заново выполнится код с новым запросом: Код: networkReply=webManager.get(request); в результате, указатель networkReply изменится. А он же ранее был связан со слотом через connect(). Вопрос. Нужно ли пересоздавать connect() сигнала-слота в такой ситуации? То есть, во внутренностях Qt напрямую используется значение указателя, или значение указателя копируется в какую-то таблицу в момент connect()? Название: Re: Вызовется ли слот, если указатель на объект изменили после connect() ? Отправлено: Old от Июль 07, 2016, 16:48 Нууу, батенька! Вы не знаете основ языка. :(
Указатель всего лишь указывает на объект (содержит адрес объекта в памяти). connect связывает сигнал одного объекта, со слотом (сигналом) другого объекта (или того же). Если вы создали новый объект, не важно что хранится в указатели, коннект сам не выполниться, его нужно будет делать для нового объекта. Название: Re: Вызовется ли слот, если указатель на объект изменили после connect() ? Отправлено: Bepec от Июль 07, 2016, 17:44 Соединяется Объект с Объектом.
Указатель - указывает на Объект. Поэтому ответ на ваш вопрос - Объект будет уже другой, поэтому его надо снова связывать. |