26
QML across all UI Stacks Support for Widgets Kevin Krammer and Tobias König KDAB

QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

QML across all UI StacksSupport for Widgets

Kevin Krammerand

Tobias KönigKDAB

Page 2: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Agenda

● Motivation for DeclarativeWidgets

● Demo of pure QML Widget UI

● Porting

– From designer/C++ UI to QML– Adding a BB10/Cascades UI

● Q&A

● Resources

Page 3: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Motivation

Page 4: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Situation

● Widgets– Widely used, well understood– Static UI, compiled code– Often tightly coupled with core logic

● QML– Relatively new, misunderstood as QtQuick– Runtime loadable, adjustable– Encourages separation core/UI

Page 5: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Goal

● Widgets with QML– No user-visible change– Apply existing developer knowledge– Core independent of UI– UI replaceable

● QtWidgets -> QtWidgets (update/customize)● QtWidgets -> QtQuick● QtWidgets -> Cascades

Page 6: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Declarative Widgets

Demo

Page 7: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

WaterLevel

Page 8: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Porting

● Step 1: Declarative Widgets– Create QML files for windows/dialogs– Make core API exposable

● Step 2: Mobile UI– Create QML files for target platform– Re-use core API from Step 1

Page 9: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Step 1

Demo

Page 10: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Step 1

Final Result

Page 11: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Step 2

Demo

Page 12: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Step 2

Final Result

Page 13: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Q&A

Thank you for your attention!

Any Questions?

● https://github.com/KDAB/DeclarativeWidgets

● Free Software / Open Source Software● Works with Qt4

● Work in progress

[email protected], [email protected]

Page 14: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

QML across all UI StacksSupport for Widgets

Kevin Krammerand

Tobias KönigKDAB

Page 15: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Agenda

● Motivation for DeclarativeWidgets● Demo of pure QML Widget UI

● Porting

– From designer/C++ UI to QML– Adding a BB10/Cascades UI

● Q&A

● Resources

Page 16: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Motivation

Page 17: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Situation

● Widgets– Widely used, well understood– Static UI, compiled code– Often tightly coupled with core logic

● QML– Relatively new, misunderstood as QtQuick– Runtime loadable, adjustable– Encourages separation core/UI

Page 18: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Goal

● Widgets with QML– No user-visible change– Apply existing developer knowledge– Core independent of UI– UI replaceable

● QtWidgets -> QtWidgets (update/customize)● QtWidgets -> QtQuick● QtWidgets -> Cascades

Page 19: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Declarative Widgets

Demo

Page 20: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

WaterLevel

Page 21: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Porting

● Step 1: Declarative Widgets– Create QML files for windows/dialogs– Make core API exposable

● Step 2: Mobile UI– Create QML files for target platform– Re-use core API from Step 1

Page 22: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Step 1

Demo

Page 23: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Step 1

Final Result

Page 24: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Step 2

Demo

Page 25: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Step 2

Final Result

Page 26: QML across all UI Stacks Support for Widgets · Situation Widgets – Widely used, well understood – Static UI, compiled code – Often tightly coupled with core logic QML – Relatively

Q&A

Thank you for your attention!

Any Questions?

● https://github.com/KDAB/DeclarativeWidgets

● Free Software / Open Source Software● Works with Qt4● Work in progress

[email protected], [email protected]