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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Property Editor.  (Прочитано 13730 раз)
spectre71
Гость
« : Ноябрь 07, 2009, 18:56 »

Вот, думаю нужно ли это кому-нибудь.
Стоит ли открывать исходники и делать Open Source проект?
Если будет интересно сделаю exe demo (для Windows, Linux Mac).
А если найдется заинтересованный народ буду договариваться с начальством об открытии кода.

Выкладываю пока анимационный GIF
« Последнее редактирование: Ноябрь 07, 2009, 19:01 от Spectre » Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #1 : Ноябрь 08, 2009, 13:21 »

На самом деле вещь очень полезная, но

существует http://www.qt-apps.org/content/show.php/Value+Browser?content=50717
и
http://www.forum.crossplatform.ru/index.php?showtopic=103
и
еще парочка не помню ссылки (QPropertyEditor, )

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

я сейчас остановился на Qt Solutions --- Property Browser ---
http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtpropertybrowser/

этот компонент имеет большое удобство в том что сначала строится иерархическая модель свойств на основе спец. класса QtProperty (входит в этот комплект), а потом можно выводить на экран в наиболее подходящем для конкретного случая виде

http://doc.trolltech.com/solutions/4/qtpropertybrowser/qtpropertybrowser-example-demo.html

есть всякие валидаторы и др. - все с примерами,

все хорошо - но мне 1-го пока не хватает - возможность выделения свойств (оставляя галочку в первой колонке), когда они представлены деревом

что-то типа такого:

Так что смотрите сами стоит ли заниматься или нет - недоделанных компонент на эту тему уже хватает...

Записан
spectre71
Гость
« Ответ #2 : Ноябрь 08, 2009, 14:56 »

На самом деле вещь очень полезная, но

существует http://www.qt-apps.org/content/show.php/Value+Browser?content=50717
и
http://www.forum.crossplatform.ru/index.php?showtopic=103
и
еще парочка не помню ссылки (QPropertyEditor, )

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

я сейчас остановился на Qt Solutions --- Property Browser ---
http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtpropertybrowser/

этот компонент имеет большое удобство в том что сначала строится иерархическая модель свойств на основе спец. класса QtProperty (входит в этот комплект), а потом можно выводить на экран в наиболее подходящем для конкретного случая виде

http://doc.trolltech.com/solutions/4/qtpropertybrowser/qtpropertybrowser-example-demo.html

есть всякие валидаторы и др. - все с примерами,

все хорошо - но мне 1-го пока не хватает - возможность выделения свойств (оставляя галочку в первой колонке), когда они представлены деревом

что-то типа такого:

Так что смотрите сами стоит ли заниматься или нет - недоделанных компонент на эту тему уже хватает...


Value Browser  3.3.0 - слабоват и глючен
Qt Solutions --- Property Browser - как ты и писал маловато функционала

=================
По поводу моего.
Основные Минусы:

1) Код пока закрыт. Начальство еще думает стоит ли его открывать.
2) Данный компонент писался врамках проекта MolQuest. Изначально на C++ Builder. Для максимальной переносимости были сделаны свои базовые классы работы со строками, списками итд.
На данный момент компонент перенесен на QT, но использует все те же базовые классы.
3) Пока очень примитивная система сигналов на изменение состояния свойств. Необходимо дорабатывать и перерабатывать!
4) Работа со строками не уникодная
5) Механизм сериализации полностью свой и не будет открыт! => Его необходимо будет делать заново.

=====

Что есть:
- Есть отдельно просмотрщик - TPropertyEditor.
И отдельно дерево свойств- TPETree
Можно сформировать сколько угодно TPETree и менять их в TPropertyEditor.
Собираем деревья TPETree из свойств имеющихся типов и устанавливаем в TPropertyEditor
-  Все элементы дерева, в том числе  секции, узлы, простые свойства, являются наследниками TPEProperty у которого практически все методы виртуальны. Можем отнаследовать свои классы свойст от TPEProperty или его потомков
- У любого узла/листа может быть CheckBox
- Имеются секции
- Любой уровень вложенности свойств
- Простые свойства с валидаторами (char, string, int, real, file, dir, ...)
- Другие простые свойства (boolean, list, simple, info, header)
- Обычные узлы со списком подузлов
- Радиогруппы
-  простое свойство list с выпадающим списком(возможно с картинками)
- Списочные узлы TPEListNode. Узел с выпадающим списком где каждый элемент - нода (TPECustomNode). При выборе ноды ее подузлы становятся подузлами TPEListNode! На анимации показано как это происходит(например, в секции Output, свойство Format - TPEListNode)
- Подсветка некорректного значения в редакторе ввода в процессе ввода.
- Понятие активности свойсва. Свойство активно если оно не имеет состояния "disabled", оно либо не имеет CheckBox либо он включен, все его родительские узлы активны;
- Значение простого неактитивного свойства становится сереньким, что очень наглядно
- Все подузлы неактивного узла становятся серенькими, что очень наглядно
- Выбраный элемент радиогруппы можно редактировать как на нем самом, так и на его родителе!
- подсветка имени некоректно заданного свойства
- специальный флажек(! красный) у имени некоректно заданного свойства
- специальный флажек(! серый) у имени всех родителей некоректно заданного свойства, для быстрого его нахождения если узлы свернуты
- возможность скрывать, делать невидимыми свойства, это не влияет на их состояние активности! Можно например настроить как нужно какие-либо свойства, а затем скрыть их.
- возможность установки разделительныx линии мемежду свойствами(между именами, между  значениями,  между именами и значениями )
- свойства типа заголовочные
- режим у дерева TPETree "read only". Значения свойств изменить нельзя, но сворачивать/разворачивать узлы и скролировать можно.
- возможность задания состояния "read only" для любого свойства
- возможность задания состояния "disabled" для любого свойства
- возможность внешней блокировки "ExtDisabled" свойства. Связка типа Контролирующее -> Контролируемые свойства. Если Контролирующее свойство становится неактивным, то Контролируемые свойства блокируются и наоборот.
- возможность задать для любого свойства числовой ID
- возможность задать для любого свойства стоки описания
- возможность создания своих редактров ввода и привязки их своим отнаследованным свойствам

ИТД.

Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #3 : Ноябрь 08, 2009, 20:35 »

По поводу QtProperty Browser - вы меня не правильно поняли - я его считаю отличным вариантом, он хорошо расширяем - всякие там "красные флажки неправильно заданных свойств" там элементарно добавить, просто для меня единственным недостатком является отсутствие CheckBox по каждому свойству - на самом деле уверен это решаемо, просто задача не стояла остро (в единственном месте проекта где требуются эти checkbox-сы пока стоит ValueBrowser ).

Бегло просмотрел описание вашего компонента и не увидел (кроме чекбоксов) ничего того чего нет в QtProperty Browser из QtSolutions. Если это скрывалось за "т.д." то расскажите об этом подробнее - а то так при сравнении ничего особенного вроде нет.
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #4 : Ноябрь 08, 2009, 20:42 »

По поводу моего.
Основные Минусы:

1) Код пока закрыт. Начальство еще думает стоит ли его открывать.
5) Механизм сериализации полностью свой и не будет открыт! => Его необходимо будет делать заново.
Чет мне кажется, что пока п.п. 1 и 5 не решены и смысла тут обсуждать его нет.
Записан
spectre71
Гость
« Ответ #5 : Ноябрь 08, 2009, 21:32 »

По поводу моего.
Основные Минусы:

1) Код пока закрыт. Начальство еще думает стоит ли его открывать.
5) Механизм сериализации полностью свой и не будет открыт! => Его необходимо будет делать заново.
Чет мне кажется, что пока п.п. 1 и 5 не решены и смысла тут обсуждать его нет.

1) Если будет интересно, то я найду способ убедить начальство, уж поверьте.  Улыбающийся
5) Это не такая уж и проблема. Большинству это вообще не нужно. А сделать новую сериализацию(в рамках QT концепции) займет не много времени.

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

С удовольвием:
- послушаю обоснованную критку
- отвечу по поводу уже имеющейся той или иной фунциональности
- послушаю советы
- итд...

Задавайте вопросы.
Записан
spectre71
Гость
« Ответ #6 : Ноябрь 09, 2009, 14:15 »

Бегло просмотрел описание вашего компонента и не увидел (кроме чекбоксов) ничего того чего нет в QtProperty Browser из QtSolutions. Если это скрывалось за "т.д." то расскажите об этом подробнее - а то так при сравнении ничего особенного вроде нет.

Вот ты говоришь что там почти все есть.
А ты не мог бы взять мой список "Что есть" и пометить в нем "*", то что по твоему есть в QtSolutions - QtProperty Browser.

Я возможно сегодня выложу демо exe под Windows.
« Последнее редактирование: Ноябрь 09, 2009, 14:17 от Spectre » Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #7 : Ноябрь 09, 2009, 15:07 »

Цитировать
А ты не мог бы взять мой список "Что есть" и пометить в нем "*"
Не буду этого делать т.к. по крайней мере мне ни разу не понадобилось 70% прелестей описанных в вашем виджете. То есть у вас куча фич весьма узкой специализации, в QtSolutions хороший инструментарий где все это можно сделать - я смотрел примеры с валидаторами, изошренными вводилками с подсветкой и т.д. Кроме того ваш виджет всегда так выглядит или это просто какой-то стиль в системе? Можети кому то покажется красиво - но в тех приложениях с которыми работаю я предполагается простота взамен красоте - чтобы было понятно тетеньке бухгалтеру и девочке секретарше и слесарю. Ничего против вашего виджета особо не имею - а то вы прям как то с нападками...
Записан
spectre71
Гость
« Ответ #8 : Ноябрь 09, 2009, 17:57 »

Не буду этого делать т.к. по крайней мере мне ни разу не понадобилось 70% прелестей описанных в вашем виджете. То есть у вас куча фич весьма узкой специализации, в QtSolutions хороший инструментарий где все это можно сделать - я смотрел примеры с валидаторами, изошренными вводилками с подсветкой и т.д. Кроме того ваш виджет всегда так выглядит или это просто какой-то стиль в системе? Можети кому то покажется красиво - но в тех приложениях с которыми работаю я предполагается простота взамен красоте - чтобы было понятно тетеньке бухгалтеру и девочке секретарше и слесарю. Ничего против вашего виджета особо не имею - а то вы прям как то с нападками...

Да не никаких нападок!
Я просто поросил сделать небольшое сравнение. Я с QtSolutions не работал, а ты да. Полезно знать разницу. Раз ты сказал что там пичти все это есть, я и предложил тебе отметить подобные фичи. Если не трудно сделай пожалуйста!

На мой взгляд у меня лишнего практически нет. PropertyEditor писался не "от фонаря", а для определенного проекта и по мере необходимости в него добавлялись те или иные возможности. Естественно что большинству какой-то функционал не понадобиться, но для каждого нужно что-то свое, для тебя к примеру CheckBox, кому-то что-то другое. И хорошо когда это в одной библиотеке(компоненте), а не в нескольких. Подмигивающий

"Подсветки" - были сделаны не для красивости или эффекта, а для максимальной информативности и их всего 3 вида :
1) Неактивные свойства или значения (серый цвет фонта)
2) Не верно заданное значение
3) Подстветка при вводе не правильного значения (вместо раздражающих выскакивающих диалогов)

Насчет стиля:
- CheckBox, Radio, "+"/"-", редакторы, кнопки, ComboBox,... - беруться от текущего стиля.
- Есть возможность настроить(порядка 10 параметров) всякие смещения в дереве, например между CheckBox и Именем.
- Есть несколько настроект типа: выранивание заголовка секции(по центру/слева), скрывать/не скрывать ScrollBar (когда в нем нет необходимости), ...
- Большая часть цветов вшита, но задается инициализацией переменнных в конструкторе, так что вытащить все это наружу не проблема.
- Само дерево "его закругленный обвод" пока только в таком стиле, но не сложно добавить и стандартный вид с линиями между ветками.

Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Ноябрь 09, 2009, 21:59 »

Мда, Spectre, в умении продвигать сделанную программу Вы особо не преуспели Улыбающийся Я ничего (абсолютно) не понимаю в Property Editor, но реакция на Вашу инициативу мне знакома прекрасно. Вы предложили обсудить, конструктивно покритиковать и.т.п. Но увы, разговаривать с пользователем "на равных" - из этого ничего хорошего не получается. Вот типичный "букет":

- "Ах, ты говоришь сделал круто, много фичес.. А вот эта фича у тебя есть? Ага, а вот там она есть!! Видишь?"

- "Ну если ты спрашиваешь что еще доделать/улучшить - то я тебе скажу.. Ну скажем, вот это.. (мысли про себя "вообще-то оно там нафиг не нужно - но вдруг пригодится")

- "Ну вообще-то сделано неплохо, может для чего-то и сгодится. Работай дальше, паренек"

Если уж Вы решили замахнуться на open source - делайте это быстро и решительно, ставьте на сайте, делайте анонсы (везде где можно) никогда не упоминайте о недостатках и.т.п. А вот потом (может быть) Вы ответите на вопросы заинтересованных пользователей Улыбающийся
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #10 : Ноябрь 09, 2009, 22:43 »

Цитировать
Если уж Вы решили замахнуться на open source - делайте это быстро и решительно, ставьте на сайте, делайте анонсы (везде где можно) никогда не упоминайте о недостатках и.т.п. А вот потом (может быть) Вы ответите на вопросы заинтересованных пользователей

Честно говоря больше похоже на политику майкрософт - опен сорс более демократичен.
Записан
BigZ
Гость
« Ответ #11 : Ноябрь 10, 2009, 09:22 »

И хорошо когда это в одной библиотеке(компоненте), а не в нескольких.
Согласен. Но тогда, с точки зрения opensource, правильнее сделать контрибуцию в Property Browser из QtSolutions.
« Последнее редактирование: Ноябрь 10, 2009, 09:24 от BigZ » Записан
spectre71
Гость
« Ответ #12 : Ноябрь 10, 2009, 11:18 »

Мда, Spectre, в умении продвигать сделанную программу Вы особо не преуспели Улыбающийся Я ничего (абсолютно) не понимаю в Property Editor, но реакция на Вашу инициативу мне знакома прекрасно. Вы предложили обсудить, конструктивно покритиковать и.т.п. Но увы, разговаривать с пользователем "на равных" - из этого ничего хорошего не получается. Вот типичный "букет":

- "Ах, ты говоришь сделал круто, много фичес.. А вот эта фича у тебя есть? Ага, а вот там она есть!! Видишь?"

- "Ну если ты спрашиваешь что еще доделать/улучшить - то я тебе скажу.. Ну скажем, вот это.. (мысли про себя "вообще-то оно там нафиг не нужно - но вдруг пригодится")

- "Ну вообще-то сделано неплохо, может для чего-то и сгодится. Работай дальше, паренек"

Согласен! Однако, мы работаем на пользователей коими мы тоже являемся. Одна голова хорошо, а много - лучше. Улыбающийся.
Естественно надо фильтровать определенные "пожелания" и "критику", и этого не избежать. Но надо стараться делать это разумно.

Цитировать
Если уж Вы решили замахнуться на open source - делайте это быстро и решительно, ставьте на сайте, делайте анонсы (везде где можно) никогда не упоминайте о недостатках и.т.п. А вот потом (может быть) Вы ответите на вопросы заинтересованных пользователей

Честно говоря больше похоже на политику майкрософт - опен сорс более демократичен.

Согласен с "break"!
« Последнее редактирование: Ноябрь 10, 2009, 11:19 от Spectre » Записан
spectre71
Гость
« Ответ #13 : Ноябрь 10, 2009, 11:56 »

И хорошо когда это в одной библиотеке(компоненте), а не в нескольких.
Согласен. Но тогда, с точки зрения opensource, правильнее сделать контрибуцию в Property Browser из QtSolutions.

Возможно, но не факт.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #14 : Ноябрь 25, 2009, 02:38 »

Создал ветку в баг трекере на счет возможности chekable для пропертей в QtTreePropertyBrowser - прошу тем кому не безразлично поддержать голосованием....

http://bugreports.qt.nokia.com/browse/QTSOLBUG-89
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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