Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Yu/2 от Май 14, 2007, 16:55



Название: Изменить текст в QTreeWidgetItem
Отправлено: Yu/2 от Май 14, 2007, 16:55
Можно ли программно изменить текст в QTreeWidgetItem (не важно в какой колонке) так, чтобы не прилетел сигнал itemChanged в соответствующий QTreeWidget?


Название: Re: Изменить текст в QTreeWidgetItem
Отправлено: pastor от Май 14, 2007, 17:10
Попробуй так:

Код:
bool prev = tree->blockSignals(true);
item->setText(<some_column>, <some_text>);
tree->blockSignals(prev);


Название: Изменить текст в QTreeWidgetItem
Отправлено: Yu/2 от Май 14, 2007, 18:41
Отлично! Спасибо, заработало как надо.


Название: Изменить текст в QTreeWidgetItem
Отправлено: Разуев Максим от Май 18, 2007, 14:16
быстрее будет использовать конкретный disconnect/connect


Название: Изменить текст в QTreeWidgetItem
Отправлено: pastor от Май 18, 2007, 17:26
Цитата: "Разуев Максим"
быстрее будет использовать конкретный disconnect/connect


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


Название: Изменить текст в QTreeWidgetItem
Отправлено: Разуев Максим от Май 18, 2007, 18:27
Ну blockSignals вроде блокирует все сигналы виджета(или я что то неправильно понял). А значит должно работать дольше чем конкретный disconnect/connect. (Кстати и в assist советуют именно это).


Название: Изменить текст в QTreeWidgetItem
Отправлено: pastor от Май 18, 2007, 18:40
Да, blockSignals блокирует все сигналы. Для интереса посотри код метода blockSignals. В нём просто устанавливаеться флаг, что нужно заблокировать\разблокировать сигналы. Далее, при вхоже в метод (помоему activate) испускания сигнала, проверчеться этот флаг и если он истина (сигналы блокированы), то мы просто вываливаемся из него не выполняя при это не каких действий.

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

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

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


Название: Изменить текст в QTreeWidgetItem
Отправлено: Racheengel от Май 18, 2007, 19:48
blockSignals для этого и придуман, connect и disconnect как раз наиболее тормознутая часть.


Название: Изменить текст в QTreeWidgetItem
Отправлено: Разуев Максим от Май 19, 2007, 00:01
Учтем.