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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Временная блокировка сигналов...  (Прочитано 5900 раз)
Cyrax
Гость
« : Январь 14, 2008, 00:00 »

Каким образом можно временно заблокировать генерацию сигнала некоторым виджетом ?
В частности, необходимо сделать так, чтобы во время программного изменения списка QComboBox'а (включая текущий индекс), тот (QComboBox) не генерировал сигнал currentIndexChanged().
Фильтры событий, как я понял, совсем не то.
Можно, конечно, временно отсоединить все слоты от этого сигнала, но это слишком геморно, особенно, если подсоединено много слотов. Да и вообще может быть неизвестно, какие слоты подсоединены к данному сигналу...
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Январь 14, 2008, 00:48 »

Да, ассистент не хотим читать

Цитировать
QObject::blockSignals ( bool block )

Пример:

Цитировать
bool blocked = comboBox->blockSignals(true);

//do_something

comboBox->blockSignals(blocked);
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Alex03
Гость
« Ответ #2 : Январь 14, 2008, 07:28 »

... В частности, необходимо сделать так, чтобы во время программного изменения списка QComboBox'а (включая текущий индекс), тот (QComboBox) не генерировал сигнал currentIndexChanged(). ...
Пользуйте сигнал activated()
Цитировать
There are two signals emitted if the current item of a combobox changes, currentIndexChanged() and activated(). currentIndexChanged() is always emitted regardless if the change was done programmatically or by user interaction, while activated() is only emitted when the change is caused by user interaction.
Записан
Cyrax
Гость
« Ответ #3 : Январь 14, 2008, 19:50 »

thanks...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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