
Build a cute widgets desktop app in Qt using a dialog base class, configure a CMake build, and explore essential widgets and the designer UI XML.
Demonstrate how QDialog inherits QWidget, use signals and slots to trigger accept, and explore designer generated xml and the meta object compiler behind Qt widgets.
Compare editor-based design with coding in Qt Widgets for Beginners by building a dialog with a line edit, label, buttons, and a message box.
Demonstrate three methods to connect signals and slots in Qt widgets—internal, editor, and explicit connect—via a dialogue app. Learn when to use each method and how debugging supports the workflow.
Explore the absolute layout in Qt widgets for beginners and understand its fixed positioning. Avoid using it, as it does not scale well, and learn better layout approaches discussed next.
Learn to use horizontal layouts in Qt widgets, avoid absolute layouts, apply dialog or widget level layouts, and fix clipping while ensuring proper scaling as the dialog resizes.
Explore the vertical layout in Qt widgets for beginners with C++, compare it to absolute and horizontal layouts, test in run mode, and create simple, clean, professional interfaces quickly.
Explore grid layouts in Qt widgets and replace horizontal and vertical layouts by adding rows and columns for neat, professional interfaces.
Explore the form layout in Qt widgets, learn how it arranges controls on screen, and recognize its quirks, such as unpredictable placement and copying challenges.
Explore multiple layouts by nesting horizontal and vertical layouts and applying horizontal and vertical spacers to control widget positioning and responsive scaling in a dialogue interface.
Learn to use Qt splitters to create horizontal or vertical layouts with a grip bar. Discover editor tips, plain text edits, and spacers for a clean, responsive interface.
Master how to configure a QPushButton in Qt with C++, including checkable states, auto repeat, and default behavior, and wire these properties via the editor and code.
Explore the checkbox widget in a burger builder interface, learn to populate and read selected options, iterate over dialog children with object lists, and display results in a message box.
Build a Qt ice cream order UI using group boxes, radio buttons, and layouts. Learn to locate the selected radio button using find direct children only.
Explore command link buttons and dialog button boxes in Qt widgets for beginners with C++, using signals and slots to display message boxes and handle standard and custom buttons.
Build a custom security panel in a Qt widgets tutorial by wiring a numeric keypad with save and verify buttons using signals and slots.
Explore how to use the QComboBox in Qt widgets, populate items, respond to current index change, and save and load the selected item with QSettings and QVariant, with practical examples.
Build a Qt interface with a combo box, push button, and a list widget to add items from the combo box to the list and save the data with QSettings.
Explore how to use a font combo box in Qt widgets, adjust the current font, and implement save and load settings to customize text appearance.
Explore the Qt line edit in depth, configuring echo modes, read-only and clear button states, and binding properties via slots with meta enums in a live UI.
Build a cross-platform text editor using QPlainTextEdit with open and save actions, a context menu, and signals and slots for undo, redo, copy, paste, and text streams.
Learn how to use spin boxes for numeric input in Qt widgets, with min, max, step, and prefix/suffix formatting. Implement saving and loading data via data streams to a file.
Explore working with dates and times using time edit, date edit, and date time edit widgets, updating values in real time and displaying the selection in local format.
Identify basic user interface design mistakes in Qt widgets, from eye candy experiments to cluttered controls, and learn why one control outperforms many while preventing infinite loops.
Learn to validate user input in Qt widgets using input masks and regular expressions, with real-time feedback for phone, date, and email fields through validators and signals and slots.
Discover the Qt resource system by baking PNG images into the binary via a resource file, organized with prefixes, and use these assets in a text editor with icon loading.
This lecture demonstrates common resource mistakes in Qt widgets for beginners, showing how edits to binary resource files fail and explaining that resource data is read-only and must be rebuilt.
Build a basic resource explorer in Qt with C++, presenting a list of icons and paths while teaching how to manage multiple resource files, prefixes, and collisions.
Learn to add resources to a shared library in a subdirs project and access images and text from the library in the host application.
Discover how to manage multiple dialogs in Qt widgets with C++, using dialogs with and without a parent, understanding memory management, and using pointers for reliable dialog lifetimes.
Explore using exec and show with Qt dialogs to create modal dialogs and wire accept and reject. Learn when to use exec versus show and memory leaks with a parent.
Learn to pass data between dialogs in a Qt widgets application by creating a selections dialog that lists images, uses accepted and rejected slots, and returns the chosen value.
Learn to pass a custom music data class between dialogs in a Qt widgets app using C++. Implement a simple editor with getters, setters, and load-edit flow.
Learn to build a QMainWindow based interface with menus, toolbars, a central widget, and a simple text editor using file dialogs and status updates.
Build a notepad-like Qt text editor by wiring menus, toolbars, and actions, and connect signals and slots to enable reliable new, open, save, and save as functionality.
Fix cursor behavior and text selection in a Qt text editor example, then explore creating and configuring toolbars and their areas, using signals and slots, and avoiding mixing styles.
Build a Qt text editor by adding a status bar with a label icon and a pixmap, and implement file status updates, dirty tracking, and dynamic status messages.
Extend a Qt text editor by wiring signals and slots, configure a splitter and central widget, and add a dialog to insert animal and food items for a functional UI.
Learn practical naming conventions for Qt UI elements, using meaningful group names and prefixes like txt for line edits to clarify foods, activities, and personal info selections.
Learn how standard icons and a scroll area work in Qt widgets, and build a simple image viewer with a file dialog, open, zoom in, and zoom out.
Explore the toolbox widget in Qt widgets, learning to add, remove, and reorder pages and populate them with a list of URL items. Open URLs via desktop services on double-click.
Learn to build a wizard-style interface with QStackedWidget by managing multiple pages, next/back navigation, and dynamic button enablement, contrasted with the tab widget.
Master a multiple document interface (MDI) in Qt widgets with C++, creating independent subwindows each with a plain text editor and integrated open, save, and save as functionality.
Set up the user interface for a rich text editor using the text edit widget, configure menus and toolbars, and enable bold, italic, underline, color, and zoom features.
We implement file io for the rich text editor, covering open and save dialogs, save as, and intercepting the close event to preserve unsaved changes.
Add copy, cut, paste, select, and undo/redo functionality to the rich text editor. Customize menus, separators, and undo levels to control editing behavior and test the results.
Develop a rich text editor find dialog in Qt widgets for beginners with C++, enabling case sensitive and whole word search, and forwards and backwards navigation.
Implement a rich text replace dialog in a Qt widgets app, adding find and replace and replace all functionality with signals, slots, and user feedback.
Learn to toggle bold, italic, and underline on the current font to transform plain text into rich text in a Qt text edit.
Implement a color dialog in a rich text editor to change the font color by updating the current character format's foreground color with a color picker.
Implement a font picker using QFontDialog to set the current font in the UI text edit, and explore how the rich text editor reflects system default fonts.
Learn to create an about dialog in a Qt widgets app, populate it from application metadata like name, version, organization, and domain, and open a help URL via desktop services.
Learn to insert custom HTML into a Qt widgets rich text editor, applying font size and color, bold, italic, and lists, noting it's not a full browser.
Explore the model view controller pattern with a string list model and a list view, showing how the model, view, and delegate coordinate data, user interaction, and model indices.
Build a minimal file system browser with a tree view and a list view driven by a Qt file system model, filtering directories and hiding extra columns.
Explore the standard item model as a universal data container to build a tree with parents, children, subitems, and an invisible root in a tree view.
Learn to build a four-by-four table using a standard item model and a table view, edit cells, and handle item changed signals with a connected slot to reflect updates.
Create a custom tree model using QStandardItemModel to display file properties in a name-value format by scanning a directory and listing files with drag-and-drop support.
Display the file system with a file system model in a tree and a list view, and synchronize both views by sharing the same model.
Extract data from a modified Qt model by iterating over rows, retrieving each item with model.item(row, 0), compiling them into a list, and displaying the results in a message box.
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.
Qt 5 Widgets and Desktop programming with C++ is designed for anyone who has a solid understanding of C++ and Qt 5 Core. This course will take you all the way from "what is a button" to model view controller programming. Includes full source code available on GitHub, and includes an entire section of example applications. This course overs Qt 5. Because Qt 6 has so many changes, I will re-record these lessons using Qt 6 and place them into a different course.
No experience with QML necessary, this is a beginners course that will teach you the foundations Widgets cross platform development. Widgets run on most major desktops (windows, mac, linux).
We will start with a short introduction to Widgets, and then rapidly move on to more complex topics.
This course is specifically designed for Qt 5 with beginner in mind but as I mentioned, most of this is comptatible with Qt6. These videos take you from knowing nothing about Qt Widgets to creating intermediate level applications using 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