
Welcome to a beginner course on PySide6 for Qt, teaching cross-platform desktop development with Python using Qt widgets and notes on QML and licensing.
Before we move on, I'd like to make sure that you get help when you need it. We have a discord server with over 4000+ professionals, students and builders who are eager to help.
Join Our Exclusive Discord Community for Students
Inside, you’ll find course-specific channels where you can:
✅ Get help with assignments & projects
✅ Ask questions about lessons
✅ Connect with fellow students in the same course
✅ Receive faster responses (I'm usually hanging out in there)
✅ Share your projects & get valuable feedback
How to Get Access
Join our Discord server: https://discord.com/invite/PcATcraESW
Send me a DM (you can see my handle in the image above @danielg) with:
Udemy course name: Qt For Python (PySide6) GUI For Beginners : The Fundamentals
A screenshot of your enrollment
Your names (Used on Udemy)
I’ll assign your Udemy Student role (this unlocks the exclusive channels where you get priority).
Start learning, sharing, and getting support right away!
Your Exclusive Channels
#modern-cpp → C++ discussions
#qt-widgets-cpp → Widgets development help
#qml → QML troubleshooting
#pyside6 → Python + Qt discussions
#general-programming → Broader programming topics
#showcase → Share your projects
#udemy-chit-chat → Study groups & casual discussions
? Pro Tip: Active members often get early access to new courses & exclusive resources!
? Join Discord now: https://discord.com/invite/PcATcraESW
? DM me your course info
? Start getting better support today!
See you inside the community!
— Daniel
Build real PySide6 GUI apps with signals and slots, starting from a basic window with widgets. Explore dialogs, layouts, model‑view architecture, packaging, and a JSON API client.
Follow along, practice, and modify the course code to get the most from this Qt for Python course, using cute examples and the model-view architecture to build PySide6 desktop apps.
Explore how PySide6 apps run by creating a Q application and a window, displaying it, and entering the event loop, with basics on imports and widgets.
Discover the fundamental Qt Widgets components for building user interfaces, including push buttons, edits, and other widgets, using PySide6.
Discover how to use the QMessageBox class in PySide6 to create transient message windows with a title, message, icons, and configurable buttons, including critical, information, and warning variants.
Explore the QPushButton class in PySide6, learn to connect pressed, released, and clicked signals to slots, and implement a widget with signal handling and a basic application boilerplate.
Learn to use the QTextEdit component in a PySide6 demo app to type multiline text, copy, cut, paste, undo, redo, and manage content with plain text, HTML, and clear operations.
Explore displaying images with a label by loading a pixmap from the images folder, setting it on the label, and arranging with a QVBoxLayout.
Explore size policies and stretches in PySide6 graphical user interface design. Learn how widgets resize, expand, or stay fixed within horizontal and vertical layouts.
Learn how to use QGridLayout in PySide6 to place widgets in a grid with row and column indexes, and apply row span and column span for flexible layouts.
Build a practical PySide6 user interface by implementing QCheckBox and QRadioButton within a group box, arranging layouts, and connecting signals to support exclusive and non-exclusive options.
Master QListWidget in PySide6 by setting up a list, adding and removing items, querying counts and selections, and reacting to current item and text changes with signals.
Explore the QComboBox in PySide6: populate items, retrieve the current text and index, and set the current item by index. See planets demo and code in Visual Studio Code.
Master the framework’s widgets, including buttons, line edit, main windows, size policies, stretches, and layouts, while building a solid foundation for using Qt Designer in the next chapter.
Use Qt Designer for PySide6 to build a form with full name and occupation line edits, submit button, and proper widget naming and layouts, saved as a widget ui file.
Design a user interface by dragging and dropping components in Cute Creator to capture full name and occupation, then save the widget UI for use in a Python application.
Learn how to load ui files into a python app with the QUiLoader class in PySide6, access widgets by object names, and connect signals to slots, noting runtime loading.
Learn how to compile a UI designer file into Python with PySide6, generating a ui_widget.py, wiring a widget class, handling utf-16 to utf-8 encoding, and using slots and signals.
Use the Qt Designer resource system to bundle assets into a Python app, compile the resource file, and load minus and plus icons into a spin box.
Create resource files with Qt Creator, compile them into Python code, import the generated resource, and apply plus and minus icons to buttons to run and test the application.
Create a main window with menus, toolbars, and resource icons, featuring a text edit. Build interface from designer, compile resource file, and run the PySide6 app in VS Code.
Explore how to create temporary dialogs and file dialogs in PySide6. Learn the fundamentals of building your own dialogs from scratch to manage user input and saving files.
Build a custom QDialog in PySide6 to collect temporary input via okay or cancel, returning results to the main widget, using modal or non-modal dialogs to control user interaction.
Explore how to use QDialogButtonBox to lay out OS-friendly dialog buttons in PySide6, handling clicks and platform-specific button order with signals and slots.
Explore Qt for Python (PySide6) file dialogs to let users pick files or directories, including open, save, and multi-file options with filters.
Learn how to implement a QFontDialog in PySide6, set a default font, let users choose fonts and sizes, accept the selection, and apply the font to a label.
Explore how to weld your own dialogues, use dialog button boxes, and work with Qt dialogs such as file, color, font, and input to design OS-appropriate PySide6 interfaces.
Discover how to style Qt for Python apps using the fusion style, palettes, and style sheets, understand color control, limitations, and practical workarounds.
Learn how Qt styles control your application's appearance across operating systems, including the built-in fusion style. See how fusion can provide a consistent look while noting trade-offs.
Use the QPalette to control text and background colors by applying it to labels. Palette colors come from OS design guidelines, and the fusion style helps keep cross-platform consistency.
Examine the limitations of using QPalette to style apps and learn to build a cross-platform dark theme by using the fusion style as base and layering a palette on top.
Learn to control the look and feel of your Qt for Python app with CSS-like stylesheets, applying them at the application, container, or widget level to style buttons and labels.
Load a single style sheet at runtime and apply it to the entire Qt application, using selectors to target widgets by name, object name, and properties.
Learn to save and load colors with QSettings across platforms by using begin group and end group, storing red, green, and blue components under color keys for nine grid buttons.
Explore the files and directory facilities with QDir and QFile, learning to read and write files, copy between files, and manage directories—listing, creating, and checking existence.
Demonstrate how to use the QFile class to read, write, and copy files in a PySide6 GUI. Build a text editor with file dialogs to save, load, and copy content.
Explore how the QDir class in PySide6 lets you select, create, and verify directories, list folder contents with QFileInfo, and distinguish files from folders via a practical user interface example.
Master basic file and directory operations in PySide6 by reading and writing files and exploring directory manipulations, building a foundation for powerful PySide applications.
Learn to use QNetworkAccessManager in a PySide6 app to fetch internet data, handle chunks with readyRead and finished signals, and display page sources in a text edit.
fetch json data from the internet using Qt for Python, parse json arrays and objects, and display titles in a list widget after processing the response.
Explore the networking facilities of the Qt for Python framework, using the network access manager to send requests, receive replies, and parse json.
Welcome to PySide6 GUI Development for Beginners. A course designed to teach you how to build cross platform desktop applications than run on Windows, Mac and Linux, using PySide6, also known as Qt For Python.
Qt is a powerful cross platform app development framework that can be used to build applications targeting a wide range of device platforms including desktop targets like Windows,Linux,Mac; mainstream mobile platforms like Android and Ios, and even embedded devices! Python is now supported as an official language for Qt and you can take advantage of the power of Qt with Python, under the PySide6 or Qt for Python umbrella, and this course is designed to help you start doing just that!
The course assumes no prior knowledge about Qt and methodically guides you though the concepts, constructs and mechanisms needed to get you building your dream GUIs for desktop with Python, using Qt Widgets. By the time you are done with the course, you will not only be armed with knowledge you could use to build basic to intermediate graphical user interface applications, but you will also have enough momentum, to even learn more on you own. As with many of my other courses, I use every chance I get to show you how to use the documentation to find solutions on your own and faster.
Let's take a look at the content of the course.
We start with a complete beginner to Qt in mind, and we take you through the the process of getting your environment set up on your platform of choice :
We install Python and PySide6 on our host machine
We then visit the fascinating concept signals and slots in Qt where you learn the most flexible way to respond to events
Next we dive in the Qt Widgets section and visit some of the most important widget classes in Qt :
QWidget
QMainWindow
QMessageBox
QPushButton
QLineEdit
QTextEdit
QLabel
QHBoxLayout, QVBoxLayout, QGridLayout
We visit size policies and stretches and how they help tie the knots in your layouts
QCheckBox and QRadioButton
QList
QComboBox
QListWidget
QTabWidget
QMenu, QToolBar, QAction
Next we look at how to use Qt Designer or Qt Creator to lay out UI components by just dragging and dropping stuff, allowing you to just focus on the logic in your python files.
Dialogs are explored next , we look at QDialog and how to build your own custom dialog class from scratch , QDialogButtonBox, QMessageBox, QFontDialog, QFileDialog, QInputDialog and how they add a layer of interactivity to your Qt GUI applications.
We then go on and explore how to work with the Qt Resource System , Styling your Qt applications with QStyle, QPalette and Style Sheets, Saving your application settings with QSettings, Working with Files and Directories using QFile and QDir, working with the network capabilities of Qt where we :
See the different classes that are available to work with networks in Qt
Build an application to download web pages in our Qt Applications
Build an application to consume Rest APIs in your Qt Applications
and we wrap up the course looking at the Model View Architecture of the Qt framework where we learn about classes like
QListWidget
QTableWidget
QTreeWidget
QListView
QTableView
QTreeView
QStandardItemModel
QAbstractItemTableModel
QAbstractItemListModel
QStringListModel
and much more!
Qt has quite a huge user base, and there are thousands of projects using it, both open source and commercial, including the one I am using to record this video right now. If you want to learn and master how to build cross platform graphical user interface applications with python, then this course is designed with the skill, patience and depth, needed to get you there as effisciently as possible.Please check out some of the preview videos, and let get you started building cross platform GUI applications, using Python and Qt.