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

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

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: автоматизировать связи changed*() РЕШЕНО  (Прочитано 14006 раз)
BRE
Гость
« Ответ #30 : Июнь 16, 2010, 21:01 »

можно, только где именно добавить и где проверять? я пока сделал цикл автоматического коннекта прямо в конструкторе диалога настроек, собственно там же логично сделать и код добавления свойств - ну и какой смысл их иметь рядом? а сейчас я могу проверять наличие этих свойств в ловушке сигнала об изменении
Мы про одно и тоже говорим?
Я про свойства QMetaObject.
Посмотри на:
QVariant QObject::property ( const char * name ) const
bool QObject::setProperty ( const char * name, const QVariant & value )

Также эти свойства можно задавать непосредственно из дизайнера.
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #31 : Июнь 16, 2010, 21:10 »

Цитировать
Также эти свойства можно задавать непосредственно из дизайнера.

про одно и то же... если из дизайнера можно - это очень неплохо, тогда действительно логично при автоматическом коннекте проверять наличие свойства, и если есть, не присоединять такой виджет

хотя с точки зрения банальной логики мало разницы между тем, присоединен ли лишний виджет, но его сигнал игнорируется, либо не присоединен - разница только в количестве проходящих сигналов, но если таких виджетов 2-3-5, то их сигналы несущественны
Записан

2^7-1 == 127, задумайтесь...
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #32 : Июнь 16, 2010, 22:03 »

хороший путь, но для этого надо научить MySettings копироваться, сравниваться и т.д. - причем для каждого нового контрола надо корректировать соответствующие методы
...
вручную я пишу только код копирования текущих настроек в контролы диалога и копирования из контролов обратно, по 2 строки на каждую настройку, причем эти же строки в варианте реализации со сравнением настроек тоже будут, только там в разы больше на каждый контрол придется написать
Наоборот, будут в разы меньше, ведь Вам надо сравнить просто данные - UI уже отработало. Это сравнение длинно но несложно, оно сплошь и рядом встречается, операции == и != интуитивны. А вот зарядить данные в UI и принять их оттуда - прекрасно автоматизируется и ходов здесь не один. Более того, connect легко поставить на автомат/пулемет (а не выписывать каждый раз). Ну а про "научить копироваться" неудобно и вспоминать - если нет "С" структур - то это уже готово  Улыбающийся

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


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