Russian Qt Forum
Ноябрь 01, 2024, 02:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вызовется ли слот, если указатель на объект изменили после connect() ?  (Прочитано 2790 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Июль 07, 2016, 16:42 »

Есть у меня виджет, в котором при нажатии кнопки cancel испускается сингнал cancelDownload. Он связывается с указателем на объект QNetworkReply *networkReply;

Код:
  networkReply=webManager.get(request);
  connect( this, SIGNAL(cancelDownload()), networkReply, SLOT(abort()) );

В процессе работы может оказаться ситуация, что вместо данных придет редирект, и заново выполнится код с новым запросом:

Код:
networkReply=webManager.get(request);

в результате, указатель networkReply изменится. А он же ранее был связан со слотом через connect().

Вопрос. Нужно ли пересоздавать connect() сигнала-слота в такой ситуации? То есть, во внутренностях Qt напрямую используется значение указателя, или значение указателя копируется в какую-то таблицу в момент connect()?
Записан

Собираю информацию по крупицам
http://webhamster.ru
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Июль 07, 2016, 16:48 »

Нууу, батенька! Вы не знаете основ языка. Грустный
Указатель всего лишь указывает на объект (содержит адрес объекта в памяти).
connect связывает сигнал одного объекта, со слотом (сигналом) другого объекта (или того же). Если вы создали новый объект, не важно что хранится в указатели, коннект сам не выполниться, его нужно будет делать для нового объекта.
Записан
Bepec
Гость
« Ответ #2 : Июль 07, 2016, 17:44 »

Соединяется Объект с Объектом.
Указатель - указывает на Объект.
Поэтому ответ на ваш вопрос - Объект будет уже другой, поэтому его надо снова связывать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.