The Future Of

Qt Widgets
•   Marius Bugge Monsen (mbm)

•   Qt Developer

•   Qt Widget Team Lead
Déjà vu?
Reading Tea-Leaves
The Elephant In The Room
• UI Extensions for Mobile
 • Scalable UI based on QGraphicsView
• Harmattan UI Framework
 • UI Framework build on QGraphicsView
• Next Generation Qt Widgets
 •?
Canvas And Paint
A

C

    B
        D
A


    B


C       D
Window System   Paint    Painting Code
                            #include<QtGui>
                            int main(in...
A


    B


C       D
Window System   Window Surface   Painting Code
                                    #include<QtGui>
                       ...
• Window
   • Widgets
    • Procedural Painting
Not Fast Enough!
• Window
   • Widgets
    • Primitive Elements
• Graphical Primitive Elements
 • Pixmaps
 • Meshes
 • Shaders
• Graphical Primitive Elements
 • Live in Graphics Memory
 • Very Fast
• Other Elements
 • Input
 • Sound
 • Haptics
 • ...
• Declarative Format (QML)
• Canvas / Scenegraph API
• HW Acceleration (OpenGL ES2 / OpenVG)
Talking Nerdy
Widget
Look & Feel   Data & Logic
42
Mouse Region



Grip        42        Groove



           Text
Groove


         Grip


Text                 Mouse
                     Region

       Look & Feel
Groove


         Grip                   Range
                               Control
Text                 Mouse
         ...
Groove       minimum

 Mouse        maximum
 Region                      Range
                     ...    Control
   Text...
Image {
  id: groove
  property alias value: control.value
  property int minimum: 25
  property int maximum: 75
  ...
  B...
42
Text   42


                              Grip
Dial




               Mouse Region
Dial
                                Range
Text     Grip        Mouse     Control
                     Region


       Loo...
Image {
  id: dial
  property alias value: control.value
  ...
  Image {
      id: grip
      ...
  }
  Text {
      id: t...
Mature &
New & Shiny
                Tested




 Look & Feel   Data & Logic
• QDateTimeControl
• QLineEditControl
• ...
The Road Ahead
• Qt Declarative + Controls
• QGraphicsItem + Controls
• QWidget + Controls
• Future Widget Technology + Controls
• labs.trolltech.com
• qt.gitorious.org/qt-labs/widgets-ng
• Google Summer Of Code
Thank You!

Questions?
Image credits:

“The Elephant In The Room” by Nancee_art on flickr
      “Tea Leaves” by allaboutgeorge on flickr
        “P...
The Future of Qt Widgets
The Future of Qt Widgets
The Future of Qt Widgets
The Future of Qt Widgets
Upcoming SlideShare
Loading in...5
×

The Future of Qt Widgets

5,841

Published on

Presentation by Marius Bugge Monsen held during Bossa Conference 2010 in Manaus.

Read more at http://labs.trolltech.com

http://qt.nokia.com
http://www.bossaconference.indt.org/

Published in: Technology, Art & Photos
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,841
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "The Future of Qt Widgets"

  1. 1. The Future Of Qt Widgets
  2. 2. • Marius Bugge Monsen (mbm) • Qt Developer • Qt Widget Team Lead
  3. 3. Déjà vu?
  4. 4. Reading Tea-Leaves
  5. 5. The Elephant In The Room
  6. 6. • UI Extensions for Mobile • Scalable UI based on QGraphicsView
  7. 7. • Harmattan UI Framework • UI Framework build on QGraphicsView
  8. 8. • Next Generation Qt Widgets •?
  9. 9. Canvas And Paint
  10. 10. A C B D
  11. 11. A B C D
  12. 12. Window System Paint Painting Code #include<QtGui> int main(int argc, char *argv[]) { QApplication a (argc,argv); QWidget w; w.show(); return a.exec(); } Update
  13. 13. A B C D
  14. 14. Window System Window Surface Painting Code #include<QtGui> int main(int argc, char *argv[]) { QApplication a (argc,argv); QWidget w; w.show(); return a.exec(); }
  15. 15. • Window • Widgets • Procedural Painting
  16. 16. Not Fast Enough!
  17. 17. • Window • Widgets • Primitive Elements
  18. 18. • Graphical Primitive Elements • Pixmaps • Meshes • Shaders
  19. 19. • Graphical Primitive Elements • Live in Graphics Memory • Very Fast
  20. 20. • Other Elements • Input • Sound • Haptics • ...
  21. 21. • Declarative Format (QML) • Canvas / Scenegraph API • HW Acceleration (OpenGL ES2 / OpenVG)
  22. 22. Talking Nerdy
  23. 23. Widget
  24. 24. Look & Feel Data & Logic
  25. 25. 42
  26. 26. Mouse Region Grip 42 Groove Text
  27. 27. Groove Grip Text Mouse Region Look & Feel
  28. 28. Groove Grip Range Control Text Mouse Region Look & Feel Data & Logic
  29. 29. Groove minimum Mouse maximum Region Range ... Control Text value Grip position Look & Feel Data & Logic
  30. 30. Image { id: groove property alias value: control.value property int minimum: 25 property int maximum: 75 ... BorderImage { id: grip ... } RangeControl { id: control minimumValue: groove.minimum maximumValue: groove.maximum minimumPosition: 0 maximumPosition: groove.width - grip.width position: grip.x } }
  31. 31. 42
  32. 32. Text 42 Grip Dial Mouse Region
  33. 33. Dial Range Text Grip Mouse Control Region Look & Feel Data & Logic
  34. 34. Image { id: dial property alias value: control.value ... Image { id: grip ... } Text { id: text text: control.value ... } MouseRegion { id: input ... } RangeControl { id: control minimumValue: dial.minimum maximumValue: dial.maximum ... } }
  35. 35. Mature & New & Shiny Tested Look & Feel Data & Logic
  36. 36. • QDateTimeControl • QLineEditControl • ...
  37. 37. The Road Ahead
  38. 38. • Qt Declarative + Controls • QGraphicsItem + Controls • QWidget + Controls
  39. 39. • Future Widget Technology + Controls
  40. 40. • labs.trolltech.com • qt.gitorious.org/qt-labs/widgets-ng • Google Summer Of Code
  41. 41. Thank You! Questions?
  42. 42. Image credits: “The Elephant In The Room” by Nancee_art on flickr “Tea Leaves” by allaboutgeorge on flickr “Painting Detail” by katiew on flickr “Mixerboard” by Manuel_P on flickr “Talk Nerdy To Me” by Ian Farrell on flickr “Impassable” by stuckincustoms on flickr

×