Qt Examples And Tutorials
A collection of code samples and tutorials are provided with Qt to help new users get started with Qt development. These documents cover a range of topics, from basic use of widgets to step-by-step tutorials that show how an application is put together.
The examples are part of the Qt packages. Visit the Downloads page for more information.
Running the Examples
Open and run examples within Qt Creator's Welcome mode. Most of the examples run on various platforms and to search for platform-specific examples, type the platform name (or any keywords) in the search field. For example, typing Android in the search field lists the examples that are fully compatible with Android.
For more information about running examples in Qt Creator, visit the Building and Running an Example page.
Application Examples
A Qt Quick app designed for portrait devices that uses custom components, animated with AnimationController, and JavaScript for the application logic. | |
A Qt Quick application with a state-based custom user interface. | |
A dice throwing application that demonstrates using Qt Quick 3D Physics and Qt Quick 3D. | |
A Widgets application to display and print JSON, text, and PDF files. | |
Demonstrates material and effects capabilities of Qt Quick 3D. This example demonstrates how you can use particle effects and materials in Qt Quick 3D. | |
Playing audio and video using Qt Quick. | |
A QML app utilizing customized Qt Quick Controls to display text files from a filesystem | |
A QML app for touch devices that uses a Repeater with a FolderListModel to access content in a folder, and a PinchHandler to handle pinch gestures on the fetched content. | |
Example of how to create a RESTful API QML client. | |
Demonstrates how to add a C++ backend to a 3D project from Qt Design Studio. This example demonstrates adding a C++ backend to a 3D project created in Qt Design Studio. The example itself consists of an interactive industrial robot arm in a Qt Quick 3D scene. The 2D UI to control the robot arm is implement using Qt Quick Controls. | |
A user interface for a home thermostat, implemented in Qt Quick. It demonstrates how to create responsive applications that scale from large desktop displays to mobile and small embedded displays. | |
A QML implementation of to do list application that demonstrates how to create application thats looks native on any platform. |
Desktop
Creating a user interface from a Qt Designer form at run-time | |
Using a form created with Qt Designer in an application | |
Using a form created with Qt Designer in an application | |
Creating a custom multi-page plugin for Qt Designer | |
Creating a custom widget plugin for Qt Designer | |
Playing audio and video using Qt Quick. | |
Creating a custom widget plugin for Qt Designer and providing custom task menu entries that are associated with the plugin | |
Dynamically loading .ui files using QUiLoader |
Mobile
A complete mobile application that demonstrates purchasing in-app products. | |
Map Viewer example shows how to display and interact with a map, search for an address, and find driving directions | |
Demonstrates calling Java code from Qt in an Android application | |
To do list application for iOS | |
A QML implementation of to do list application that demonstrates how to create application thats looks native on any platform. |
Embedded
Custom Shell shows how to implement a custom shell extension | |
Fancy Compositor is an example that demonstrates how to write a fancy Wayland compositor in pure QML | |
IVI Compositor is an example that demonstrates how to use the IviApplication extension | |
Minimal QML is a simple example that demonstrates how to write a Wayland compositor in QML | |
Multi Output is an example that demonstrates a compositor with multiple outputs | |
Multi Screen is a desktop-style Wayland compositor for multiple screens | |
Overview Compositor shows how to switch between clients in a grid | |
Demonstrates an application launcher designed for wearable devices | |
QtShell Compositor shows how to use the QtShell shell extension | |
Server Side Decoration Compositor is a simple example that demonstrates server side window decorations on xdg-shell | |
Spanning Screens is an example that demonstrates how to let Wayland clients span multiple screens |
Graphics & Multimedia
Analog Clock example shows how to draw the contents of a custom widget | |
Testing the available audio devices and their configuration | |
Enabling audio playback using the QAudioSink class | |
Discovering the available devices and supported codecs | |
Recording audio using the QAudioSource class | |
Shows how to capture a still image or record video. or video | |
Playing audio and video | |
This Qt Quick based application shows how to use the API to capture a still image or video | |
This example demonstrates creating components dynamically | |
Playing audio and video using Qt Quick | |
Transforming video and camera viewfinder content | |
Recording audio and video using Qt Quick | |
Demonstrates instancing with custom materials and a C++ instance table | |
Demonstrates how to use the Qt Quick 3D Particles3D module | |
Demonstrates the use of Principled Material | |
Demonstrates the use of reflection probes in Qt Quick 3D | |
Demonstrates the use of ExtendedSceneEnvironment | |
Demonstrates use of QQuickAttachedPropertyPropagator | |
A QML app using Qt Quick Controls and a C++ class that implements a simple contact list | |
A simple event calendar | |
A QML app using Qt Quick Controls and a QML plugin with customized controls | |
A gallery of controls | |
An automotive user interface using custom Imagine style assets | |
A QML app using Qt Quick Controls and a C++ class to provide a fully-functional rich-text editor application | |
Capturing a screen or window | |
Shows some of the capabilities of the spatial audio engine in Qt | |
Analyzing a raw audio stream using the FFTReal library | |
Streaming video on a graphics scene | |
Implementing a video player widget | |
Demonstrates how to use an effect created with the Qt Quick Effect Maker (QQEM) |
Data Visualization & 3D
This example shows the drawing of microphone samples vs audio level | |
Implementing axis dragging with a custom input handler in QML, and creating a custom axis formatter | |
Demonstrates how to use the different chart types by using qml | |
An application that demonstrates the Qt Charts Widgets API | |
Gallery of Bar, Scatter, and Surface graphs | |
Demonstrates simple instanced drawing | |
Example shows how to implement application with strict performance requirements using the Qt Charts QML API | |
This is a basic demonstration showing how to use the different chart types by using qml | |
Shows four basic shapes that Qt 3D offers and sets up a mesh for each of them | |
A QML example that demonstrates rendering a Scenegraph from multiple viewports | |
A QML application that demonstrates using PBR materials | |
A C++ application that demonstrates how to render a scene in Qt 3D | |
Demonstrates creating a custom material in Qt 3D | |
A QML application that demonstrates how to render a scene in Qt 3D | |
A Qt 3D QML application that implements a single-pass wireframe rendering method | |
Demonstrates the antialiasing modes in Qt Quick 3D | |
Demonstrates the use of baked lightmaps in a 3D scene | |
Demonstrates writing custom post-processing effects | |
Demonstrates providing custom vertex data from C++ and QML | |
Demonstrates instancing with custom materials and a C++ instance table | |
Demonstrates writing shaded custom materials | |
Demonstrates writing C++ custom geometry with a morph target | |
Demonstrates the use of custom vertex and fragment shaders | |
Demonstrates dynamic model creation | |
Demonstrates how to render 2D and 3D objects together in Qt Quick 3D | |
Demonstrates how to do instanced rendering in Qt Quick 3D | |
Demonstrates how to render a scene in Qt Quick 3D | |
Demonstrates the use of level of detail helper | |
Demonstrates the use of different light types | |
Demonstrates how to control morphing animations in Qt Quick 3D | |
Demonstrates how to use the Qt Quick 3D Particles3D module | |
Demonstrates picking of models | |
Demonstrates the use of Principled Material | |
Demonstrates how to provide custom texture data from C++ or QML | |
Demonstrates how to create a simple game using Quick3D | |
Demonstrates the use of Qt Quick Items in Quick 3D scene | |
Demonstrates the use of reflection probes in Qt Quick 3D | |
Demonstrates how assets can be loaded at runtime | |
Demonstrates the use of ExtendedSceneEnvironment | |
Demonstrates reflections in Qt Quick 3D | |
Demonstrates how to enable fog in the 3D scene | |
Demonstrates how to render a simple skinning animation in Qt Quick 3D | |
Demonstrates how assign materials to sub-meshes | |
Demonstrates the use of View3D to show a scene from multiple cameras | |
Demonstrates how to spawn physical objects | |
Demonstrates the CharacterController type | |
Demonstrates using complex collision shapes | |
Demonstrates using different shapes | |
Demonstrates using trigger bodies and collision info | |
Demonstrates different ways of setting mass and inertia of a body | |
Demonstrates using physical materials | |
Demonstrates setting up a simple physics scene | |
Using Bars3D in a QML application | |
Using Scatter3D in a QML application | |
Gallery with three different ways to use a Surface3D graph | |
Rendering volumetric objects | |
Example shows how to create your own custom zooming effect |
Data Processing & I/O
Shows how to use Qt SQL classes with a model/view framework | |
Cached Table example shows how a table view can be used to access a database, caching any changes to the data until the user explicitly submits them using a push button | |
Convert example demonstrates how to convert between different serialization formats | |
Provides a reader for XML Bookmark Exchange Language files | |
Drill Down example shows how to read data from a database as well as submit changes, using the QSqlRelationalTableModel and QDataWidgetMapper classes | |
JSON Save Game example demonstrates how to save and load a small game using QJsonDocument, QJsonObject and QJsonArray | |
Master Detail Example shows how to present data from different data sources in the same application. The album titles, and the corresponding artists and release dates, are kept in a database, while each album's tracks are stored in an XML file | |
A demonstration of how to parse files in CBOR format | |
Demonstrates how to read and write XBEL files | |
A collection of QML local storage examples | |
Query Model example shows how to make customized versions of data obtained from a SQL query, using a model that encapsulates the query and table views to display the results | |
Relational Table Model example shows how to use table views with a relational model to visualize the relations between items in a database | |
SQL Browser example shows how a data browser can be used to visualize the results of SQL statements on a live database | |
SQL Widget Mapper example shows how to use a map information from a database to widgets on a form | |
Table Model example shows how to use a specialized SQL table model with table views to edit information in a database |
Connectivity
Example shows reading from formatted NFC Data Exchange Format (NDEF) messages | |
Shows how to use the synchronous API of QSerialPort in a non-GUI thread | |
Shows how to use the synchronous API of QSerialPort in a worker thread | |
Shows communication through Bluetooth using RFCOMM protocol | |
A game demonstrating the interaction with a Bluetooth Low Energy Heart Rate device/service | |
An example demonstrating how to set up and advertise a GATT service. The example demonstrates the use of the Qt Bluetooth Low Energy classes related to peripheral (slave) functionality | |
An application designed to browse the content of Bluetooth Low Energy peripheral devices. The example demonstrates the use of all Qt Bluetooth Low Energy classes | |
Example sends and receives CAN bus frames | |
Demonstrates communication among instances of an application | |
Demonstrates usage of the Qt D-Bus typesystem | |
Demonstrates a simple message system using D-Bus | |
Shows how to use Qt D-Bus to control a car from another application | |
Creating a application that communicates with an MQTT broker | |
Example implements a Modbus client application | |
Example shows how to handle custom Modbus function codes | |
Example implements a Modbus server application | |
Developing a very simple client program which displays the content and changes made on a server | |
Developing a simple server program that displays and makes changes to a QTreeView which is made available on a Remote Objects network | |
Using QtBluetooth Low Energy (BT LE or BLE for short) as a transport medium with Qt Remote Objects | |
Using a non-QIODevice-based transport (QWebSocket) with QtRemoteObjects | |
Using the CoAP client for a multicast resource discovery with a Qt Quick user interface | |
Securing the CoAP client and using it with a Qt Quick user interface | |
Setting up a secure Remote Object network using QSslSockets | |
Shows how to use various features of QSerialPort | |
Creating an application that communicates with a CoAP server | |
Creating a minimalistic telemetry application | |
A client who holds a replica of a time object from a server and displays the time in a clock | |
A server which shares a time object with connected clients | |
Combining an MQTT client with a web socket connection |
Networking
A demonstration of how to fetch and display a network resource | |
Demonstrates how to create a client for a network service | |
Using the Qt GRPC client API in the user applications | |
Demonstrates how to create a client for a network service | |
Demonstrates how to create a server for a network service | |
Demonstrates a simple HTTP client | |
Creating a HTTP2 connection between a Qt GRPC client and a C++ gRPC server | |
Demonstrates how to receive information sent to a multicast group | |
Demonstrates how to send messages to a multicast group | |
Demonstrates a stateful peer-to-peer Chat client | |
Explains how to write a QML WebSocket client example | |
A simple example that shows how to use a QML WebSocketServer | |
Example of how to create a RESTful API QML client. | |
List of Qt WebSocket examples | |
Implements a simple FTP client using a state machine | |
A simple client application using secure WebSockets (wss) | |
A simple server to respond to clients over secure WebSockets (wss) | |
Sensors example shows how two applications can communicate by sending protobuf messages using UDP sockets | |
A minimal chat application using the WebSocket protocol | |
Threaded Fortune Server example shows how to create a server for a simple network service that uses threads to handle requests from different clients. It is intended to be run alongside the Fortune Client example | |
Show how to write a simple WebSocket client application | |
Show how to write a simple WebSocket server application |
Positioning & Location
GeoJson viewer example demonstrates how to manipulate MapItems, handle user input and I/O to and from a GeoJson file | |
Logfile Position Source shows how to create and work with a custom position source. It can be useful for simulating GPS data, or when the data is received in some custom format | |
How to use transitions together with MapItemView | |
Minimum code to display a map using Qt Quick | |
Places example demonstrates how to search for Places and access related content | |
Places List example demonstrates how to search for and display a list of places using a ListView | |
Places Map example demonstrates how to search for and display a list of places on a map using a MapItemView | |
Plane Spotter example demonstrates the tight integration of location and positioning data types into QML | |
SatelliteInfo example shows the available satellites using Sky View or RSSI View and the user's current position. The satellites currently contributing to the GPS fix are marked as pink | |
Weather Info example shows how to use the user's current position to retrieve local content from a web service in a C++ plugin for QML |
Web Technologies
A QML client that communicates over a WebSocket with a QWebChannel server |
Community Examples
To view and run examples provided through the Qt Project, visit the Community Examples page.
All Examples
All Qt Examples lists all examples categorized by the Qt module they belong to.