Название: Инспектор Объектов - как сделать? Отправлено: Fregloin от Апрель 19, 2013, 18:00 Привет всем. Нужно написать собственный инспектор объектов, который будет отображать и изменять свойтсва объекта на сцене (наследник от QGraphicsObject).
Список имен свойств предоставляется в отдельном списке. Читаю Бланшет и Саммерфилд Програмирование GUI на С++ Qt4. модели и делегаты там описаны вскольз. Инспектор написан, но он сырой и не все позволяет делать пока (костылей куча, хочется сделать по уму на совесть что бы в будущем к нему не возвращаться) Немогу немного уяснить следующее: Вот создаю двумерную модель-таблицу. В первой колонке просто названия свойтсв элемента сцены на русском, во второй колонке значения этого элемента. Значения такие как, положение х и у, цвета, шрифт, специфичные данные (int,bool,QColor,QFont,qreal,...). Все свойства объявлены как Q_PROPERTY. Делегат опрашивает модель и создает соотвествующие элементы редактирования. Это как бы работает. Но не пойму, как правильно изменять свойства. Через setData? Название: Re: Инспектор Объектов - как сделать? Отправлено: Fregloin от Май 13, 2013, 12:43 Набросал простенький проект:
на форме есть два виджета, QTableView и QLineEdit. В таблице отображаются свойства QLineEdit-а. Создал класс модели, в которой перечисляются все DESIGNABLE свойства объекта. Создал класс делегат для редактирования этих свойств. Присвоил модель и делегата таблице. Названия свойств отображаются, а вот делегат почемуто в упор не вызывается, в createEditor не заходит. Выкладываю архив, помогите разобраться плиз. В исходниках креатора не нашёл где производится подобное редактирование свойств на лету. Название: Re: Инспектор Объектов - как сделать? Отправлено: Fregloin от Май 13, 2013, 14:34 Оказывается нужно было задать EditTriggers = All для таблицы и все заработало :/
Название: Re: Инспектор Объектов - как сделать? Отправлено: Fregloin от Май 18, 2013, 16:37 Кто может подсказать, как реализована модель/делегаты в QtCreator'ном инспекторе, например при редактиоровании флагов. Я так подозреваю там используется древовидная модель, но не могу понять, как она реализована с делегатами..(
Сейчас у меня реализовано через табличную модель, но вижу что этого недостаточно, как минимум при редактировании свойств флагов, QRect,QSize ..etc где нужно более чем один виджет-редактор. |