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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Изменить текст в QTreeWidgetItem  (Прочитано 6124 раз)
Yu/2
Гость
« : Май 14, 2007, 16:55 »

Можно ли программно изменить текст в QTreeWidgetItem (не важно в какой колонке) так, чтобы не прилетел сигнал itemChanged в соответствующий QTreeWidget?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Май 14, 2007, 17:10 »

Попробуй так:

Код:
bool prev = tree->blockSignals(true);
item->setText(<some_column>, <some_text>);
tree->blockSignals(prev);
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Yu/2
Гость
« Ответ #2 : Май 14, 2007, 18:41 »

Отлично! Спасибо, заработало как надо.
Записан
Разуев Максим
Гость
« Ответ #3 : Май 18, 2007, 14:16 »

быстрее будет использовать конкретный disconnect/connect
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Май 18, 2007, 17:26 »

Цитата: "Разуев Максим"
быстрее будет использовать конкретный disconnect/connect


Доводы в студию. У меня противоположное мнение
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Разуев Максим
Гость
« Ответ #5 : Май 18, 2007, 18:27 »

Ну blockSignals вроде блокирует все сигналы виджета(или я что то неправильно понял). А значит должно работать дольше чем конкретный disconnect/connect. (Кстати и в assist советуют именно это).
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Май 18, 2007, 18:40 »

Да, blockSignals блокирует все сигналы. Для интереса посотри код метода blockSignals. В нём просто устанавливаеться флаг, что нужно заблокировать\разблокировать сигналы. Далее, при вхоже в метод (помоему activate) испускания сигнала, проверчеться этот флаг и если он истина (сигналы блокированы), то мы просто вываливаемся из него не выполняя при это не каких действий.

Методы connect и disconnect на порядок сложнее  и объёмнее метода blockSignals.

Так что, имхо, blockSignals будет работать на тотже порядок быстрее.

Кстате, в ассистанте я не нашёл, что лучше юзать connect\disconnect
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #7 : Май 18, 2007, 19:48 »

blockSignals для этого и придуман, connect и disconnect как раз наиболее тормознутая часть.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Разуев Максим
Гость
« Ответ #8 : Май 19, 2007, 00:01 »

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


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