A QML Presentation System

Published Monday May 30th, 2011
20 Comments on A QML Presentation System
Posted in Qt Quick

When I was preparing for Qt Developer Days last year, I started out with an unnamed tool to create my presentation and was annoyed with some of its shortcomings. At the time, I decided to do my slides in QML instead, partially to learn it a bit better and partially because I thought it would be kinda cool. I have since then simplified it a bit and by now I have something that I personally find useful, so maybe someone else will too. It’s all QML and JavaScript, so no compilation required.

Repository is here: https://qt.gitorious.org/qt-labs/qml-presentation-system
All .qml files use import QtQuick 2.0 so you need a fresh build of Qt 5 with the “qtquick2” branch of qtdeclarative-staging

And here is a video walking through the tutorial and examples in the repository.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Qt Quick


Lukas says:

Nice work!

Daniel Molkentin says:

Minor comment: blanking the screen (for live demo/audience questions), is ‘c’ in other presentation systems, [esc] should quit.

Lucian says:

Usable a year ago, simplified since, yet dependent on a non-existing Qt release. Is it just me or the project could have been just fine without the GLShaders but usable on the 4.7 baseline? Nice work nonetheless. ๐Ÿ™‚

The “PS3 animated background” is classy.

I’ve been wondering if it would be possible to do such a thing with Qt.


gunnar says:

Daniel: I’ll update the shortcuts ๐Ÿ™‚
Lucian: The Presentation and Slide classes do run against 4.7, but since I’m a graphics programmer, I need to have them shaders ๐Ÿ™‚

Adriano Gil says:

Really nice work!
I had seen such idea in the qt-gsoc ideas list.
I’m happy that someone implemented it.

Lilian says:

Very-very nice! QML 3D comes soon, it might get even more interesting… ๐Ÿ™‚

Exactly the same idea came to my mind a few days ago. Presentations with QML ๐Ÿ˜‰

Tom Sutcliffe says:

Very nice indeed! A great real-world example of QML on the desktop doing something cool. Particularly impressed that it’s pure QML with no C++. Have you tried it on a S^3 phone using the HDMI out? ๐Ÿ™‚

gunnar says:

Thanks for the nice comments ๐Ÿ™‚

Tom Sutcliffe: Nope, I have not tried it on a S^3 phone, but I don’t see why it wouldn’t work though. Other than QML 2 not being present there of course, but the Presentation and Slide elements can be made to run on QML 1 by changing the import statements only.

Perhaps this is a good practical example of why we (Qt guys) think QML + JavaScript is a good combination. The entire “framework” is 266 lines of code, including license headers. The examples in the video total to 893 lines of code, including license headers.

charley says:

This is AWESOME. GREAT Idea.

It would be cool if someone would host QML/Javascript “snippets” for these slides, and it would be not-much-work to create an executable interface for the user to add content/slides, with the “output” being GENERATED Javascript/QML. Then, you’d have a free-standing presentation replacement for all those other “presentation tools”.


Tom Sutcliffe says:

It would be good if the files that didn’t rely on QtQuick 2.0 only imported 1.0 – ie Slide.qml and Presentation.qml etc.

gunnar says:

charley: The idea of a stand alone generator that generates the QML slide decks have been suggested to me personally too, and I think its a great idea. Contributions are welcome ๐Ÿ™‚

Tom Sutcliffe: I’ve added a “quick1” branch to the repository which has import QtQuick 1.0 statements instead of 2.0. It doesn’t have the animated background example though, but it will be usable.

Orgad Shaneh says:

The quick1 tutorial crashes after the contentWidth slide.

You should also change the text according to the new key bindings (Hit [esc] to fade out…)

Orgad Shaneh says:

By the way, great work! I’m really impressed!

Mark says:

Really impressive and very nice! Any ideas if/how it would be possible to make PDFs out of such a presentation (without the animations etc of course)?

Krys says:

Really NICE work !

Orgad Shaneh says:

The reason for the crash is line 131: running: fillAreaSlide.visible.

Apparently, when visible is set to false (i.e. user moves to next slide), it crashes…

Richard says:

Really nice !

I tried running the examples on my computer, it works but the scene doesn’t update automatically.
I have to move the mouse or generate any other event to see the transitions / animations. I’m using Qt5 repo with qtdeclarative-staging qtquick2-stable branch.
Any idea before i try to put a timer event ? ๐Ÿ˜›

Rezza says:

Thanks! I used it for my Qt Quick/Qt Mobility talk at Openmobility Conference. It’s really great to show real examples… in slides! So Map element, a few buttons there, zooming support and “wow” sound coming from class-room!

Commenting closed.

Get started today with Qt Download now