QML\Qt Quick это превосходный декларативный язык программирования, призванный сильно упростить создание и дальнейшую поддержку пользовательских интерфейсов.В докладе я расскажу что из себя представляет QML, попробуем разобраться в вопросе “Где и как уместно использовать QML\Qt Quick” и приведу краткий обзор полезных инструментов для разработки QML\Qt Quick приложений.
8. QML
это JSON-подобный декларативный язык программирования,
основанный на JavaScript, использующий С++ API для интеграции с Qt
Qt Quick
это scenegraph-based UI framework, использующий в качестве языка
программирования QML и позиционирующий себя как инструмент
для быстрой разработки и прототипирования
9. Где уместно использовать Qt Quick?
Там где вы уже используете Qt
Там где требуется не стандартный (вычурный) UI
Там где необходим кросплатформенный “look and feel”
Там где есть постоянно меняющиеся требования к дизайну и бизнес-
логике
28. С++ API позволяет:
– экспортировать в QML C++ обьекты наследованные от QObject
– экспортировать в QML не визуальные типы
– классы на основе QQuickPaintedItem для визуальных элементов с
поддержкой QPainter
– классы на основе QQuickItem для визуальных элементов сцены
30. class User : public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(int age READ age WRITE setAge NOTIFY ageChanged)
public:
User(const QString &name, int age, QObject *parent = 0);
...
}
31. void main( int argc, char* argv[] ) {
...
User *currentUser = new User("Alice", 29);
QQuickView *view = new QQuickView;
QQmlContext *context = view->engine()->rootContext();
context->setContextProperty("currentUser", currentUser);
...
}
32. void main( int argc, char* argv[] ) {
...
User *currentUser = new User("Alice", 29);
QQuickView *view = new QQuickView;
QQmlContext *context = view->engine()->rootContext();
context->setContextProperty("currentUser", currentUser);
...
}
Text {
text : currentUser.name
}