crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QTreeWidget
Введите ваше имя
Подтвердите код

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

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
flankerr Дата 26.2.2008, 17:58
  кстати чего-то сразу ступил...
blockSignal можно же выборочно использовать к любому объекту в том числе к любому объкту диалога а не кдиалогу целиком.
Tonal Дата 22.2.2008, 8:33
 
Цитата(flankerr @ 21.2.2008, 14:33) *
Цитата(Tonal @ 21.2.2008, 11:11) *
Зачем же дисконнект/коннект?
Есть же QObject::blockSignals

Насколько я понимаю в этом случае блокируються все сигналы...
В этом смысле, мне думается, конект\дисконет более правильное решение т.к. изолирует только нужную часть сигналов.

Если тебе действительно нужно выборочно блокировать сигналы, тогда действительно blockSignals не подходит.
Тогда либо конект\дисконет, либо выставлять какой-нибудь флажёк перед действием, а в обработчике его проверять и ничего не делать если он выставлен.

blockSignals очень хорошо подходит при первоначальном заполнении диалога данными например. Когда к событиям привязаны проверки и/или корректировки состояний других виджетов.
Litkevich Yuriy Дата 21.2.2008, 17:55
 
Цитата(flankerr @ 21.2.2008, 14:37) *
как и функции setFoo

Foo в переводе с английского: что-то, что-нибудь и т.д.
т.е. я имел в видукакую-нибудь функцию которая устанавливает состояние чего либо, некоторые функции не приводеть к посылке сигналаов, как
например, для класса абстрактной кнопки:
Цитата
void QAbstractButton::clicked ( bool checked = false ) [signal]
Данный сигнал посылается при активизации кнопки (т.е. когда нажатая кнопка отпускается при находении указателя мыши внутри кнопки), при нажатии горячего сочетания клавиш или при вызове click() либо animateClick(). Обратите внимание: данный сигнал не посылается при вызове setDown(), setChecked() или toggle().
У тригерной кнопки свойство checked равно true если кнопка включена, или false если кнопка выключена.
См. также pressed(), released(), и toggled().


А насчет флага, похоже это моя мечта, а не действительность :)
flankerr Дата 21.2.2008, 11:37
 
Цитата(Litkevich Yuriy @ 21.2.2008, 0:25) *
не все сигналы посылаются при програмном изменении состояния, плюс некоторые функции попадаются перегруженые, в которых можно флажек выставить, "не сигналить". надо справку почитать вдруг для твоего случая такая комбинация сигнала и функции setFoo() попадется.

На будущие учту спаисбо
но возможность выставить флаг сигналить\несигналить я не нашёл впрочем как и функции setFoo
возможно это есть начиная с 4.2
flankerr Дата 21.2.2008, 11:33
 
Цитата(Tonal @ 21.2.2008, 11:11) *
Зачем же дисконнект/коннект?
Есть же QObject::blockSignals


Насколько я понимаю в этом случае блокируються все сигналы...
В этом смысле, мне думается, конект\дисконет более правильное решение т.к. изолирует только нужную часть сигналов.
Tonal Дата 21.2.2008, 11:11
  Зачем же дисконнект/коннект?
Есть же QObject::blockSignals
Litkevich Yuriy Дата 21.2.2008, 0:25
  не все сигналы посылаются при програмном изменении состояния, плюс некоторые функции попадаются перегруженые, в которых можно флажек выставить, "не сигналить". надо справку почитать вдруг для твоего случая такая комбинация сигнала и функции setFoo() попадется.
flankerr Дата 20.2.2008, 12:08
  Возник другой вопрос.
Как сделать чтобы событие отрабатывало только по действию пользователя но не работало при программном изменение значения ?
ну можно конечно делать дисконект слота перед прграмным изменением а после снова делать конектЮ но может есть что более "красивое"...
flankerr Дата 20.2.2008, 11:37
  понял почему у меня не получалось. :rolleyes:
надо было так
itemChanged ( QTreeWidgetItem *,int )
а у меня было так
itemChanged ( QTreeWidgetItem * item, int column)
ViGOur Дата 20.2.2008, 9:11
 
Цитата(Litkevich Yuriy @ 19.2.2008, 18:42) *
однако, это видимо во всех случаях где макрос Q_OBJECT,
Угу, именно так :)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 10:48