The Next Generation Qt Item Views
-
Upload
qt-project -
Category
Technology
-
view
2.783 -
download
3
description
Transcript of The Next Generation Qt Item Views
![Page 1: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/1.jpg)
Qt Item ViewsThe Next Generation
![Page 2: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/2.jpg)
• Marius Bugge Monsen (mbm)
• Qt Developer
• Qt Widget Team Lead
![Page 3: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/3.jpg)
• What is Qt Item Views?
• Why a “Next Generation”?
• How Does it Work?
• Can I Start Using It?
Qt Item ViewsThe Next Generation
![Page 4: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/4.jpg)
What Is Qt Item Views?
![Page 5: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/5.jpg)
![Page 6: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/6.jpg)
QListView QTableView QTreeView
![Page 7: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/7.jpg)
• QWidget-based
• Model-View
• Since Qt 4.0
![Page 8: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/8.jpg)
Creative Friday!
![Page 9: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/9.jpg)
Why a “Next Generation”?
![Page 10: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/10.jpg)
... and why now?
![Page 11: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/11.jpg)
![Page 12: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/12.jpg)
![Page 13: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/13.jpg)
![Page 14: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/14.jpg)
• Lessons Learned
• Qt Development
• Competition
![Page 15: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/15.jpg)
• Design Lessons
• Different views - different use-cases
• Eye-candy matters
• KISS
![Page 16: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/16.jpg)
• Process Lessons
• Be open
• Use the API
• Encourage others to use the API
![Page 17: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/17.jpg)
• So What Do We Want ?
![Page 18: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/18.jpg)
Shark_food by starstreak007 on flickr
![Page 19: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/19.jpg)
• Features
• Fast
• Integrated
• Hardware Accelerated
![Page 20: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/20.jpg)
• API
• Discoverable
• Structured
• Clear
![Page 21: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/21.jpg)
• Implementation
• Simple
• Clean
• Testable
![Page 22: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/22.jpg)
How Does It Work?
![Page 23: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/23.jpg)
View Controller
Model
![Page 24: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/24.jpg)
Data and logicSelection state
Presentation Behavior
![Page 25: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/25.jpg)
Data and logic Selection state
Presentation Behavior
![Page 26: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/26.jpg)
QListModelInterface QListSelectionManager
QGraphicsListView QListController
Data
InputOutput
![Page 27: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/27.jpg)
QListModelInterfacevs.
QAbstractItemModel
![Page 28: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/28.jpg)
• Optimizable
• Maintainable
• Expandable
![Page 29: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/29.jpg)
Tree Model
List View
Adaptor
![Page 30: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/30.jpg)
QListWidgetNG
QListDefaultModel QListSelectionManager
QGraphicsListView QListController
![Page 31: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/31.jpg)
Graphics View
Item View
![Page 32: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/32.jpg)
int main(int argc, char *argv[]){ QApplication app(argc, argv); QListWidgetNG widget; widget.show(); return app.exec();}
![Page 33: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/33.jpg)
int main(int argc, char *argv[]){ QApplication app(argc, argv); QListWidgetNG widget; widget.controller()->setModel(new MyData(&widget)); widget.show(); return app.exec();}
![Page 34: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/34.jpg)
Data and logic Selection state
QGraphicsListView Behavior
![Page 35: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/35.jpg)
• View or Layout?
![Page 36: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/36.jpg)
Item
View
![Page 37: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/37.jpg)
Item
Invisible item
![Page 38: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/38.jpg)
Item
Invisible item
![Page 39: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/39.jpg)
Item
Invisible item
![Page 40: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/40.jpg)
QGraphicsWidget
QGraphicsWidget
![Page 41: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/41.jpg)
QGraphicsWidget
QPropertyAnimation
Position
Opacity
Scale
Rotation
Size
![Page 42: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/42.jpg)
Demo
![Page 43: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/43.jpg)
Me
QGraphicsSimpleTextItem
QGraphicsPixmapItemQGraphicsSvgItem
QGraphicsLayout
![Page 44: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/44.jpg)
Item
Me
View
![Page 45: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/45.jpg)
‘SUP DAWG YO I HERD U LIKE ITEM VIEWS...
![Page 46: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/46.jpg)
ViewView
View
![Page 47: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/47.jpg)
Data and logic Selection state
QGraphicsListView Behavior
![Page 48: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/48.jpg)
Data and logic Selection state
Behavior
![Page 49: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/49.jpg)
Data and logic Selection state
Behavior
![Page 50: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/50.jpg)
Data and logic Selection state
PathListView Behavior
![Page 51: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/51.jpg)
![Page 52: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/52.jpg)
int main(int argc, char *argv[]){ QApplication app(argc, argv); QListWidgetNG widget; widget.controller()->setView(new MyPathView); widget.show(); return app.exec();}
![Page 53: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/53.jpg)
Item
View
![Page 54: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/54.jpg)
Item
View
![Page 55: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/55.jpg)
Demo
![Page 56: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/56.jpg)
Data and logic Selection state
Presentation Behavior
![Page 57: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/57.jpg)
Data and logic Selection state
Presentation QListController
![Page 58: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/58.jpg)
Input Events
ControllerModel
![Page 59: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/59.jpg)
Item
View Input Events
Controller
![Page 60: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/60.jpg)
Item
View Scrollbar
Controller
![Page 61: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/61.jpg)
Data and logic Selection state
Presentation QListController
![Page 62: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/62.jpg)
Data and logic Selection state
Presentation
![Page 63: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/63.jpg)
Data and logic Selection state
Presentation
![Page 64: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/64.jpg)
Data and logic Selection state
Presentation QKineticListController
![Page 65: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/65.jpg)
int main(int argc, char *argv[]){ QApplication app(argc, argv); QListWidgetNG widget(new QKineticListController); widget.show(); return app.exec();}
![Page 66: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/66.jpg)
Can I Start Using It?
![Page 67: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/67.jpg)
• Yes
![Page 68: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/68.jpg)
• Yes, but ...
![Page 69: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/69.jpg)
Research!
![Page 70: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/70.jpg)
• Current status
• Integrating in existing applications
• Profiling and optimizing
![Page 71: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/71.jpg)
• Current status
• Missing features
• API may change
![Page 72: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/72.jpg)
• Unsolved problem
• Data Invalidation
![Page 73: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/73.jpg)
“Don’t expect, inspect!”
![Page 74: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/74.jpg)
http://labs.trolltech.com/page/Projects/Itemview/ItemviewsNG
http://qt.gitorious.org/qt-labs/itemviews-ng
![Page 75: The Next Generation Qt Item Views](https://reader034.fdocuments.net/reader034/viewer/2022052619/5551d8eab4c905c2388b5304/html5/thumbnails/75.jpg)
Thank you!
Questions?