Предстоящие Вкусности В Qt Quick

В Qt-блог В грядущей версии 5.1 есть обзор предстоящих нововведений в Qt Quuck. Короче говоря, они добавили функционал виджетов, аналог QMainWindow, и дали возможность использовать QML в проектах виджетов, пусть и в несколько урезанном варианте.

Таким образом, Qt Quick готов к разработке приложений на настольных компьютерах.

Нам дали практически все, что мы привыкли видеть в виджетах.

Первыми и, пожалуй, самыми важными являются линкеры:

Предстоящие вкусности в Qt Quick

в чем именно проблема?: В виджетах макетировщики являются удобным инструментом для изменения размера отображаемого окна.

До версии Qt 5.1 аналогичный функционал можно было реализовать и в QML, но теперь это стало проще.

Например, код из этот статьи: До:

  
  
   

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 } } }

Добавлено несколько классов представления (или что бы то ни было): SplitView, ScrollView и TableView.

Предстоящие вкусности в Qt Quick

Последний аналог QTableView и это классическое табличное представление, ScrollView — это своего рода аналог QAbstractScrollArea, SplitView — аналог QSplitter. Добавлено классическое управление:

Предстоящие вкусности в Qt Quick

И дали нам возможность гнуться так, как нам заблагорассудится, так же, как и Видам.

И вот как нам предлагают все это использовать:

GroupBox { id: gridBox title: "Grid layout" Layout.fillWidth: true GridLayout { id: gridLayout anchors.fill: parent rows: 3 flow: GridLayout.TopToBottom Label { text: "Line 1" } Label { text: "Line 2" } Label { text: "Line 3" } TextField { } TextField { } TextField { } TextArea { text: "This widget spans over three rows in the GridLayout.\n" + "All items in the GridLayout are implicitly positioned from top to bottom." Layout.rowSpan: 3 Layout.fillHeight: true Layout.fillWidth: true } } }

Ну, по крайней мере, он не усложнился, а вкупе с оригинальными возможностями qml оставаться верным виджетам смысла не вижу

Ссылки

Теги: #Qt #qt быстро #программирование #Qt
Вместе с данным постом часто просматривают: