В блоге Qt появился обзор, предстоящих нововведений в Qt Quck в грядущей 5.1. Если вкратце, они добавили функционал виджетов, аналог QMainWindow и дали возможность использовать QML в виджет-проектах, правда в несколько усеченном варианте. Таким образом Qt Quick готов для разработки приложений и на десктопах.
Нам дали практически все то, что привыкли видеть в виджетах. Первое и самое пожалуй важное это компоновщики:
В чем собственно проблема. В виджетах компоновщики представляют собой удобный инструмент, когда дело доходит до изменения размеров отображаемого окна. до Qt 5.1 в QML подобный функционал тоже было можно реализовать, но сейчас стало проще. В пример можно привести, код из этой статьи:
До:
После:
Добавили несколько View классов (или как их там): SplitView, ScrollView и TableView
Последний аналог QTableView и это классическое табличное представление, ScrollView является неким аналог QAbstractScrollArea, SplitView — аналог QSplitter.
Добавили классические элементы управления:
И дали возможности гнуть как душе угодно, ровно как и VIew-ры.
И вот так нам предлагают всем этим пользоваться:
Ну что ж, по крайней мере это не стало сложнее, а вкупе с изначальными возможностями qml оставаться верным виджетам я уже смысла не вижу
Нам дали практически все то, что привыкли видеть в виджетах. Первое и самое пожалуй важное это компоновщики:
В чем собственно проблема. В виджетах компоновщики представляют собой удобный инструмент, когда дело доходит до изменения размеров отображаемого окна. до 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 }
}
}
Добавили несколько View классов (или как их там): SplitView, ScrollView и TableView
Последний аналог QTableView и это классическое табличное представление, ScrollView является неким аналог QAbstractScrollArea, SplitView — аналог QSplitter.
Добавили классические элементы управления:
И дали возможности гнуть как душе угодно, ровно как и VIew-ры.
И вот так нам предлагают всем этим пользоваться:
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 оставаться верным виджетам я уже смысла не вижу