
This course covers the basics of QML for beginners. It does not cover C++ prerequisites, deep Android or iOS topics, or advanced animations, storage, and networking.
Clarify how QML and Qt Quick relate, with QML as the user interface atop C++ or Python backends, using signals and slots, bindings, and JavaScript interfaces.
Explore QML limitations by understanding its GUI strengths and the challenges of non-graphical use. Assess platform support across desktop, embedded, and webassembly to decide where QML fits best.
Explore what you can build with QML through complete source-code examples in Qt Creator, including 3D planets, charts, and cross-device apps.
Explore Qt5’s de facto status as Qt6 nears, with long-term Qt5 support and potential breaking changes, plus backward compatibility concerns for 3D workflows in Blender and Maya.
Compare QML and Qt widgets, showing that cute widgets deliver native desktop look and tight C++ integration, while QML enables cross-platform desktop, mobile, and embedded apps with smooth animations.
Explore the write once, build anywhere principle in QML, showing how to write code once and test on Windows, Mac, and Linux, with notes on cross-compile and remote deployment.
Discover whether you need to buy Qt Creator and compare paid versus open source licensing. Learn about GPL and LGPL considerations, pricing examples, and publishing implications.
Discover how to create projects in Qt Creator, explore QML examples with complete source code, and learn the bare minimum: desktop with Qt Creator.
Learn how Qt Creator kits define how the application is compiled. Configure and manage kits, switch between debug and release, and explore static builds using the kit selector.
Navigate Qt Creator project types, from applications to libraries, and understand how C++, Qt Quick, Python, and Java integrate, including empty projects and prebuilt scroll, stack, and swipe view templates.
Learn why a console application in Qt yields a black window, and why this course focuses on core concepts, C++ foundations, and Qt libraries before exploring graphical user interface development.
Learn how a widgets application uses an XML UI file with drag-and-drop controls, and contrast it with a dynamic QML app that embeds JavaScript.
Switch between multiple projects by designating the active or default project and running the console app. To avoid confusion when adding files, work with only one project at a time.
Dive into building a QML scroll view app by creating a new desktop project, using the QML and Quick libraries, and loading the main QML into the engine for execution.
Explore QML editor versus designer by starting from scratch, using IntelliSense with control space, and switching to the form editor for real-time layout results.
Begin your journey in QML by exploring comments, intellisense quirks, and a simple desktop window with an image, anchor, and a web resource.
Explore unique IDs and the single root object in QML. Learn the parent-child hierarchy, memory management, and how property binding and anchors shape the layout.
Demonstrate QML objects and QObjects through signals and slots, property bindings, and a root-child hierarchy, enabling text input to drive live text display and C++ integration.
Explore qml basics by mastering x, y, and z positioning, coordinate systems, and layering with opacity to visualize stacking order.
Explore how parent and child relationships work in qml, positioning children with x and y relative to their parent, adjusting z-order, and understanding clipping and bounds for rectangles.
Build a 100 by 100 blue rectangle in QML that turns red when pressed using a tap handler. Learn input handling, the pressed state, and how user interaction changes color.
Learn how the item type serves as a non-visual base class in QML, defines anchors and analyzes children, and acts as a container for building custom components.
Explore qml rectangle in depth, adjusting color, width, height, visibility, borders, and radius, and apply a gradient via the rectangle's gradient property with stops from 0.0 to 1.0.
Learn how to use the image type in QML, work with local and remote images, understand automatic format detection, preserve aspect fit, and monitor remote image loading progress and status.
Explore the QML text type, render HTML, and style anchors with font size, color, bold, and italic. Use signals like on link hovered and on link activated to handle links.
Explore QML mouse area to enable interactions beyond taps. Embed it as a child, handle signals like clicked, double clicked, entered, exited, position changed, configure accept buttons and hover.
learn to build a reusable custom button component in qml by composing an invisible item, a rectangle, text, and a mouse area with color and title properties.
Learn object positioning in qml using the x and y axes, drag a rectangle with a drag target, and view real-time position updates via x and y changes.
Explore the z drag axis in QML for beginners, learn how z order layers objects, set drag targets, and position multiple shapes with x, y, and z offsets.
Create a simple column layout in QML by stacking custom shape components, enabling drag via a mouse area, adjusting spacing, and centering the column with anchors to control z-order.
Discover the row layout in QML, placing components horizontally and mirroring the column layout. The only difference is the component name, enabling reuse of the same shape and drag target.
Explore QML grid layouts by defining rows, columns, spacing, and anchors; drag shapes within a grid, understand z-order and clipping, and predict item order in multi-row configurations.
Explore qml flow layout behavior, as items arrange in rows or columns, with dynamic flow direction and spacing, and learn how clipping and z-order affect visibility.
Explore QML anchors, center in parent, drag shapes and glue them to others using properties to align text and color, while learning practical patterns and debugging subtle M16 issues.
Explore how margins work in QML, using global margins and specific left or bottom margins, and see how anchored sides determine which margins apply to the child.
Build a simple image viewer in QML by creating a custom hover button that changes images on click, with layouts and aliases for responsive styling.
Explore how transformations use object properties to animate changes over time with property animation. Move a rectangle by changing its position using durations in milliseconds, triggered by clicks.
Learn how to implement rotation and a rotation animation in QML for a centered red 200x200 rectangle, with infinite looping, direction control, and pause resume via mouse area.
Explore scale and sequential animation in QML, using scale animator to shrink and grow a shape in sequence, with clipping to bound the animation and create an infinite loop.
Animate a ghost image using an opacity animator in a sequential animation to fade in and out. Configure the image path, anchors, and a five-second duration with infinite loops.
Explore smoothed animation in qml by applying ease in and ease out to a red and yellow rectangle, binding x and y to create a keyboard-driven chase with smooth transitions.
Discover how anti-aliasing smooths QML shapes, view circles with and without anti-aliasing, and learn that anti-aliasing is on by default but can be disabled for performance on embedded devices.
Use keyboard input in qml to resize a rectangle by adjusting width and height and border with on up, down, left, and right pressed, centered with a transparent fill.
Learn transform and translate in QML, anchor items to center in parent, offset with translate, and animate rotation with a rotation animator from 360 to 0 over five seconds, looping.
Explore drag and drop in QML with an end-to-end example featuring a draggable ball, a drop zone, color feedback, and hit detection.
Explore the QML designer by switching from text editor to form editor, using drag-and-drop, and adjusting anchors and layout. See states and root item properties.
Explore the QML property editor by shaping rectangles, adjusting borders, radius, and colors, using multi-select, and see how drag and drop creates parent-child relationships while inspecting editor attributes and automatic IDs.
Explore connections and bindings in QML by creating rectangles, adding a mouse area, wiring an on clicked event, and binding a rectangle's width and height to another.
Explore QML fundamentals by manipulating a rectangle and a mouse area; set properties, update a text title via binding, and test interactions using both properties and connections.
Learn how to implement qml states by creating a my box stoplight with base, on, and off states, binding colors like default, on, and off for dynamic visuals.
Add and manage images in the designer via the resource tab, drag them into the scene, save to run, and note that some formats like jpeg may not be supported.
Discover how Qt quick controls accelerate UI development in QML by using pre-built components like a dial, progress indicator, checkbox, and delay button. Configure imports and explore variations across versions.
Explore the humble label in qml for beginners, mastering normal and stylized text, inline html, word wrap, color, bold, italic, and live preview—what you see is what you get.
Connect a mouse area to a label to control a busy indicator in qml, binding the running state to toggle on and off with clicks; it's not a progress indicator.
Learn to build a clickable QML button that updates an image when pressed, using resource images and onClicked or code connections.
Learn how to customize check boxes in qml, from normal and not checkable to tri state, exclusive, and repeat modes, with design view tips and simple code wiring.
Explore check delegates in a list view in qml for beginners, contrast them with check boxes, and learn how the delegate renders model data in a model-view architecture.
Learn how to use a combo box in QML with a model-view setup, bind a list model, define text roles, handle current index changes, and add or edit items.
Add a dial to a QML design, bind its value to a label, and diagnose wiring with target IDs and on moved events. Compare inline and connections approaches for updates.
Learn to create a frame and a modal pop-up in qml, configure anchors and size, and implement open and close behaviors with escape and outside-click policies.
Configure a group box with radio buttons in a column layout to manage food and drinks options. Use JavaScript in a non-visual pop-up to read and display selections.
Learn to use the normal slider and range slider in QML for beginners, bind its current value to a label, format it with rounding, and set a step size.
Explore how the range slider in QML selects an inner range within an outer range from 0 to 100, using first and second values and property aliases.
Learn how to create a round button in QML, place it in a row, and use on clicked to increment or decrement a value via a property.
Learn to implement a QML switch that toggles an image between sad and happy, using bottom anchors and margins, and hooking into toggle events in the form editor.
Learn a QML tumblers lock interface, build a simple lock with a 5-9 code, and manage string and integer handling to unlock the UI.
Build an end-to-end login screen in qml with username and password fields, a column and grid layout, labels and text fields, and a modal status pop-up for login feedback.
Explore how to implement a multi-line text area inside a scroll view in QML for beginners, including auto scrolling to new content, keyboard interactions, and understanding scroll view content items.
Learn to implement a ScrollView in QML by building a simple list model and a delegate component that displays name and number for a 20-item list.
Explore the stack view, a stack-based navigation model, by building a home page with a drawer and pages one to three, using the form editor or text editor for customization.
Learn to pass data between qml pages with property bindings, using a shared name property and two pages, a text field, and a swipe view to sync values.
Learn how to pass data between pages in QML using a swipe view, two pages, and manual property bindings, enabling two-way variable sharing between page one and page two.
Explain how variables in JavaScript are defined, including identifier rules—start with a letter (or $ or _), case sensitivity, and using var with simple examples.
Understand how brackets denote scope in JavaScript, distinguish global from inner scopes, and see how redeclaring variables can cause naming conflicts. Prepare for flow control concepts introduced in upcoming videos.
Explore JavaScript if statement to control flow using equals, not equals, and comparisons less than and greater than. Learn how the triple equals avoids type coercion and enables if-else branching.
Explore loops in QML for beginners, including the for loop for ranges, the do loop that runs at least once, and the while loop that checks first, with practical examples.
Explore how the JavaScript switch statement works, using cases, break to prevent fall-through, and a default, even with mixed types; see why it's handy for option lists over many if-elses.
Discover the JavaScript ternary operator, a three-operand one-line construct using a condition, a true value, and a false value.
Master JavaScript basics and explore capabilities like arrays, sorting, and iterating dates and times. Recognize that JavaScript engines vary by vendor and environment, with differences across Windows, Mac/Linux, and Chrome.
Explore inline JavaScript in QML, animating a red rectangle that changes color on click with a ternary operator in a mouse area, highlighting scope and testing.
Explore qml javascript functions to control ui behavior, including color swap and signal handling with a mouse area.
Place JavaScript in an external file for a QML app, but avoid undefined globals by passing objects as parameters. Import the file and wire operations such as swapColor to events.
Connect JavaScript with back-end C++ handlers in QML by binding signals and slots, implement a startup, and manage signal-slot signatures and parameters, while debugging runtime errors.
Write once, build anywhere – Qt runs on virtually anything. You probably have applications built with Qt running on your computer, smart phone, television, and other electronics.
This course targets Qt5 but is mostly compatible with Qt6 - I am in the process of recording the Qt6 material, anyone owning this course will get a free upgrade to the Qt6 version.
No experience with QML necessary, this is a beginners course that will teach you the foundations QML cross platform development. QML runs anywhere from desktops (windows, mac, linux) to cellphone, and embedded devices.
We will start with a short introduction to QML, and then rapidly move on to more complex topics such as layouts, properties and animations.
This course is specifically designed for Qt 5 with the QML beginner in mind. These videos take you from knowing nothing about QML to creating intermediate level applications using QML, JavaScript and C++. These videos build on the popular Qt Core series available on Udemy. These videos show many best practices and how to overcome common mistakes. About the author: Bryan has created hundreds of Qt tutorials available on YouTube and has created official Qt training videos for the Qt Company. Full source code available on GitHub, and runs a Facebook community with thousands of developers that can offer free help 24x7.
Highly recommended that you have a strong foundation in Qt Core before attempting this course - fear not, I have other courses available on Udemy:
Qt 5 Core Beginners
Qt 5 Core Intermediate
Qt 5 Core Advanced