Как стать автором
Обновить

Комментарии 15

Супер!

Читал об экспериментах с виджетами ещё около двух лет назад, наконец-то они включили этот код в основную ветку.
Строили-строили и наконец построили. Как выйдет Qt Creator 2.8 надо посмотреть как он поддерживает нововведения.
Ну, во времена описываемого vitaly_KF эксперимента креатор ещё той версии умел показывать быстрые контролы в дизайнере. А что ещё от него требуется?
Мне вот ещё QQmlApplicationEngine понравился и переключение табом, зря, наверное, вы про это не написали.
Нук, к примеру, как он работает с Layout-ами.
Может быть, новости это не мой стиль, но просто столь долгожданная новость про Desktop components, вот и не удержался.
Ну если бы меня не вывели подышать свежим воздухом, то вы бы так и не успели и удержались. :) Но мне понравилось, что вы привели примеры кода, я делал простой перевод.

Нук, к примеру, как он работает с Layout-ами.

С Row и Column работал нормально. Так или иначе, RC же есть, надо установить да попробовать.
думаю, зачем они нам нужно и почему их не хватало на десктопах думаю не надо.

Конечно, так ведь лень перевести несколько предложений из той же блогозаписи:
While anchors and basic positioners have previously provided great flexibility with Qt Quick, they can sometimes become tedious, verbose or complex when dealing with resizable user interfaces. By adding QtQuick.Layouts as a compliment to the existing anchor based methods, you can now build complex resizable layouts, respecting minimum, maximum size hints and declare items as expanding or fixed in a simple and declarative way.

Ну что же, мне лень:

Не смотря на то, что якоря и основные позиционеры ранее обладали большой гибкостью в Qt Quick, иногда они становились нудными, многословными и сложными, когда дело касалось масштабируемого пользовательского интерфейса. Теперь, используя QtQuick.Layouts в дополнение к существующим методам, основанным на якорях, появилась возможность строить сложные масштабируемые макеты, соблюдающие указания по минимальному и максимальному размерам элементов, и объявлять элементы как расширяемые или фиксированные простым декларативным способом.
Подозреваю чуток переработанный Google translate я. (из невысказанных речей мастера йода).

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

До:
ToolBar {
    Row {
        id: row
        spacing: 2
        anchors.verticalCenter: parent.verticalCenter
        ToolButton { iconSource: "images/go-previous.png" }
        ToolButton { iconSource: "images/go-next.png" }
    }
    Slider {
        anchors.left: row.right
        anchors.leftMargin: 2
        anchors.verticalCenter: parent.verticalCenter
        anchors.right: parent.right
    }
}

После:
ToolBar {
    RowLayout {
        anchors.fill: parent
        spacing: 2
        ToolButton { iconSource: "images/go-previous.png" }
        ToolButton { iconSource: "images/go-next.png" }
        Slider { Layout.fillWidth: true }
    }
}

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

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

Вот сложно было в самой статье привести в качестве примера эти два куска кода для наглядности?
Проверил, если честно — очень похоже :) Но это не ввину вам, а вину самого абзаца, в его невнятной структуре.

Спасибо, действительно, не подумал. Обязательно допишу, а от вас жду еще дельной критики :)
Всплывающие подсказки не отрабатывают, редактируемые поля (TextArea, TextEdit и т. д.) по-прежнему не реагируют на правый клик, фокусирование произвольно скачет. Естественно, можно наследоваться от элементов и попытаться реализовать нормальное поведение, но стоил ли овчинка выделки, если есть нормальные qt-виджеты вне quick?

И хоть теперь хотя бы у стандартных элементов нормальная реакция на двойные-тройные клики, до десктопа ещё далеко. Впрочем, на мобильных устройствах оно уже давно «pretty neat».
Вообще, очень смешанные чувства вызывает QML и QtQuick. С одной стороны — декларативный подход к макетам интерфейса мне кажется очень хорошей идеей, а с другой стороны — мало того, что для того, что бы пользоваться Qt Quick надо кроме глубоких познаний в Qt по-факту знать три языка: QML, JavaScript и С++, так оно ещё и часто-густо не работает или работает как-то странно. Например:
  • До недавнего времени, (в 5.0.1, в 5.1.0 ещё не проверял) в присутствии окон со свойством OnTop ко всем MouseArea элементам переставал приходить Release.
  • Не существует (по заверениям поддержки digi'ии) способа сделать View наполненный интерактивными элементами, который не будет обладать Flickable свойством пока элементы влезают в одну страницу на View.
  • Из делегата Repeater'а всё ещё никак нельзя получить доступ к модели, кроме как наделяя делегат знаниями о том, что он используется внутри Repeater'а.
  • Документацию на QML тесты похоже что удалили. В 4.7 она достаточно подробная. В 5.1.0 beta там два с половиной слова.
  • 100500 рандомных, с моей точки зрения, warning'ов, которыми сыпет плюсовая часть QtQuick'а во время работы.

И это только то, что я смог вспомнить в воскресенье утром спросонья. Ну, т.е. я надеюсь, что QtQuick как-то разовьется и будет хорошим удобным инструментом, но сейчас мне это напоминает приход Qt 4, если вы понимаете о чем я.
А оно по-прежнему реализовано на QML? Перефразирую — когда я смотрел, там был с++ класс, к-ый отвечает за рисование стилем, а все элементы были написаны поверх него на QML. Кажется, что реализовать полный функционал виджетов на одном QML достаточно сложно. К примеру — их новый комбобокс поддерживает редактирование и возможность подменить попап виджет на свою вьюху? Что с комплитером/валидатором? Что с кнопками — в них можно втыкать меню? Когда я смотрел, этого не было. Что-нибудь изменилось?
Там есть плюсовые расширения, но большая часть написана на чистом qmlе.
Вообще штука еще несколько глючная, местами странная, но для всяких хитрых интерфейсов уже вполне удобная. Из фич пока бывает деревьев не хватает настоящих.
В начале статьи Quck, а не Quick (:
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории