Pull to refresh

Comments 9

Здорово, прокомментировал пост и оценил работу товарища, как нахватал минусов в карму. Извините, а что нужно писать в комментариях?

P.S. В преддверие глупых вопросов про «почему бы просто не проплюсовать пост» — опять же, благодаря таким пользователям, которые тупо сливают карму — нехватает ее для голосования. Замкнутый круг.
Ну это же хабр, ваш комментарий не содержит не смысловой ни эмоциональной нагрузки, следуя простым правилам можно избавится от подобных комменнтариев. В данном случаете просто не писать: «Cупер, Спасибо, Отличная работа» и т.д. Либо конструктивно влезайте в обсуждение либо отказывайтесь от данной идеи. И да мой комментарий тоже не несет смысловой нагрузки однако, он надеюсь отвечает на ваш вопрос.
<irony>
Отсутствие комментариев, как отсутствие вопросов после лекции, говорит о том, что, либо совсем ничего не понятно, либо, наоборот, всё понятно. Надеюсь здесь второй вариант: о)
Самое смешное, что сегодня думал о похожем…
В exaro report используется этот property editor — тогда он мне почему то не понравился (сейчас уже не вспомню почему) — хотел ваять что то свое. Судя по статье, вы серьезно подошли к вопросу, пока кладу в «избранное» :)

Надеюсь проект будет полезен. Если есть вопросы по функциональности или нужно более подробно описать, как этим пользоваться или расширять, как говориться: You are welcome!
Сейчас более активно занимаюсь вторым проектом qt-items, по мотивам моей первой статьи. Но если появятся запросы в этом проекте — постараюсь оперативно их решать.
А вот я буквально пару недель назад очень искал стандартный виджет для редактирования стандартных Q_PROPERTY. Типа тех, что приведены у Вас на картинке в начале. Оказалось, что они скорее есть, чем нет. А именно, выделены из основного проекта Qt и лежат в репозитории Qt Solutions. Осталю здесь ссылки на всякий случай.
Исходники qtpropertybrowser в проекте qt-solutions
Мануал The Property Browser Framework
Похожее решение есть еще у KDAB (разработчики KDChart). Называется их виджет KDPropertyView и входит в состав набора виджетов KD Tools.
KDPropertyView is an model/view based viewer/ editor for key/value properties. The basic type of a property is QVariant. Additional display/edit information like minimum- and maximum-values, lists of options, and input masks can be communicated to the view via the model. Composite properties are supported (for example a ”Size” property might be composed of a height and width). A number of editors are included in KDTools, but the system can easily be extended via delegates and custom editors that plug into KDPropertyView.

Внешний вид их виджета:



P.S. спасибо Вам за проект.
Да, похожие проекты есть. Какие-то бесплатные, какие-то нет. Я постарался упростить работу с properties для программиста.
Что бы можно было просто сгенерировать класс, готовый к использованию, как в GUI, так и в С++ коде. Плюс, так как мои свойства — наследники QObject, получаем почти задаром скриптинг. Например:
    QtnPropertySetText textParams;
    QScriptEngine eng;
    eng.globalObject().setProperty("textParams", eng.newQObject(&textParams));

    QScriptValue val = eng.evaluate("textParams.Tabulation.tabSize.isEditable");
    Q_ASSERT(val.toBool(), false);

    eng.evaluate("textParams.Tabulation.replaceWithSpaces.value = true");
    QScriptValue val = eng.evaluate("textParams.Tabulation.tabSize.isEditable");
    Q_ASSERT(val.toBool(), true);

Есть тест для скриптинга (см. TestProperty::propertyScripting), нам можно посмотреть примеры (в том числе подключение к слотам).
Есть сохранение в QDataStream, наверное стоит сделать сохранение в JSON.
Sign up to leave a comment.

Articles