The Future of Qt Widgets

3,035 views

Published on

Presented at the Bossa'10 conference in Manaus, Brazil. The presentation talks about the direction in which the Qt widgets are being developed and introduces the idea of Controls to Qt and QML.

Published in: Technology, Art & Photos
2 Comments
1 Like
Statistics
Notes
  • Can I download this slide ?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hope for it
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
3,035
On SlideShare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
0
Comments
2
Likes
1
Embeds 0
No embeds

No notes for slide

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

×