Important note : There is an update of this course to Qt 6. If you're just starting out, that's what you should take. Take this if you have a specific reason to target Qt 5.
This course will take you from zero to a level where you can write any Qt C++ Gui application you may want. It is aimed at complete beginners but people with varying levels of experience wishing to learn Qt C++ Gui will equally find it useful.
Important note : There is an update of this course to Qt 6. If you're just starting out, that's what you should take. Take this if you have a specific reason to target Qt 5.
This course will take you from zero to a level where you can write any Qt C++ Gui application you may want. It is aimed at complete beginners but people with varying levels of experience wishing to learn Qt C++ Gui will equally find it useful.
Qt is second to none in the field of building cross platform GUI application based on C++. It can currently be used to build software that runs on virtually any platform out there: Windows, Mac, Linux, Android, IOS and even embedded systems. You basically build your software once and all you have to do is build it for your desired platform and voila .
The course starts with a complete beginner to both C++ and Qt in mind, and we take you through the the process of getting your environment set up on your platform of choice :
We do a live install of Qt Creator on Windows
We do a live install of Qt Creator on Linux
We guide you though how you would install Qt Creator on a Mac
We guide you through Qt Creator showing you the tools that work together to get your application built
We then take you on a tour of the C++ programming language, covering the concepts deemed important to start working with Qt to build your shinny GUI applications. You don't need to be a C++ wizard to start writing your applications using Qt. One of the goals behind Qt itself is to be as easy to use as possible, helping you to focus on your application logic rather than the C++ complex plumbing. This does not mean that you can do with zero C++ knowledge though. That's why we take you on a tour to cover the basic concepts of the language covering topics like:
Running your first console application and understanding the main function
Streams that help you write and read data from your C++ applications
Variables and Data Types
Basic C++ Operators and Control flow where among other things you learn about if clauses and loops
Build an app to guess numbers and put together the concepts learned so far
C++ Functions
C++ classes
Building your first Qt C++ GUI Application
Building a GUI Version of your Number guessing game
We then visit the fascinating concept signals and slots in Qt where you learn the most flexible way to respond to events :
We'll explore lambda functions in C++ in general, we'll need them to use their
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 QSetting, Working with Files and Directories using QFile and QDir and we wrap up the course with a tour of 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
This course was designed to help you succeed in becoming a Qt Gui application developer regardless of your current level of expertise. The only requirement is to bring in an open mind and a strong willingness to learn. Now, please check out some of the preview videos andl let's get you STARTED building cross platform GUI applications using Qt.
Welcome! How to make the most out of this course.
An Overview of the Qt Creator UI and the tools used to build your Application. Content include
Run your very first C++ program in the Qt Creator Environment :
Learn how to use streams to input and output data :
Know your variables and what kind of data you can stuff inside :
All about controlling where your program goes and what it does in there
You've learnt a great deal so far. Put your knowledge together and build a fun number guessing console game. Along the way :
Functions are the most basic way to keep your code organized . You'll :
Learn the basics of working with the Class construct in C++ . You'll :
Learn more about classes :
Learn about inheritance and splitting your classes into multiple files :
Enough of the console. Time to work with actual graphical user interfaces built with Qt !
Build a GUI Version of the Number Guessing Game we built in Lecture 9.This lecture may be challenging as it uses UI components before we explain them but this is intended to kind of get your wheels spinning before we dive deep into these components in section 4. Along the way :
Lambda functions are a great way to do inline functions in C++, you'll have the bare basics about them laid down here and be able to use them in your C++ applications, along the way you'll :
Learn what a signal and slot is in Qt and different ways to connect them in your Qt applications. Along the way, you'll :
Have your try on signals and slots in a sightly more exciting way :
We've been using the QWidget class on occasion without really having explained it. This is the time to clear the fog. You'll :
The last lecture left us with a Widget that we defined in code with a label component on it. Time to take it further . You'll :
QMainWindow is the main widget for a good number of Qt applications out there. It lets you use things like Menus , Toolbars, status bars very easily.You'll try it in your own Qt application and along the way you'll :
QMessageBox class allows you to show messages to your users. You'll learn different ways you can use this class and look at numerous convenience methods it provides to make your live easier. Along the way, you'll :
It's almost impossible to write a Qt UI application without using the QPushButton class. That's why we've been using it quite a lot before we even explain it. In this lecture you'll :
The QLineEdit class allows you to capture one liner input data in your Qt Ui applications. Your task in this lecture is to build an input form completely from code ( position widgets and all that stuff) and make it fully operational. Along the way , you 'll :
The QTextEdit class gives you an area were you can type longer pieces of texts with paragraphs. You'll going to use it and see some of its important signals. Along the way, you'll :
QLabel class is mostly used to show text labels in widgets. But its more exciting use is displaying images on widgets. In this lecture you're going to see it in action. Along the way you'll :
The layout system in Qt takes away all the burden of positioning widgets manually ( the moving we've been doing all over the place). This lecture is a simple introduction to the topic before we dive deep into using them in the following lectures.
QHBoxLayout allows you to layout widgets horizontally in another widget. In this lecture you'll :
QVBoxLayout allows you to layout widgets vertically in another widget. In this lecture you'll :
The QSizePolicy class control how wigets behave ( grow/shrink) when the containing ( also called parent) widget is resized, in this lecture, you'll :
QGridLayout is what it sounds like, lays out your widgets in a grid structure, In this lecture you'll :
Checkboxes and radiobuttons are a must have in UIs that require you to collect a set of choices from a user. This lecture explores and sheds some light on different ways you can use them, including :
QList is one of the implementations of lists in Qt. It lets you store objects in contiguous locations and gives you easy ways to grab your data back when you need to. In this lecture, you'll :
The QComboBox widget is a combined button and popup list. You click on it and a list appears. You then can choose items from that list. In this lecture you'll get handy with this UI component, along the way , you'll :
QListWidtet is a combined widget and list. It shows all the elements of the list in the widget without the need of popping them up like the combo box does. In this lecture, you'll get handy with this class and see it used in a more realistic way. You'll :
QTabWidet allows to stuff different widgets in different tabs. This lecture will take you to a tour on this widget and different ways you can manipulate it. You will :
We have used menus before but we never really got to connect actions in the menu option to actions in the tool bars. This lecture aims at addressing that and lets you build a more realistic mini-text handling application. Along the way you will :
Learn how to leverage QDialog to build your own dialog Classes
Put QMessageBox in Context as a Dialog Class
Learn about different static methods you might call on QFileDialog to help you choose files and directory paths in your file system
Learn how to let the user specify the fond they want to use for text shown in their widgets
Learn how to let the user choose colors in your Qt applications
Learn how to let the user choose one liner pieces of data in your Qt Applications
Learn what the Qt resource system is all about, the syntax of it , prefixes and aliases.
Get to use image resources correctly in your Qt applications.
An overview of how QStyle, QPalette and Style sheets can help in cooking up a custom look and feel for your Qt Application
QPalette used to control the colors of your widgets
Style Sheets used to control the look and feel of your Qt Applications
Style sheets used from external files in your resource files to keep things neat and organized.
Use style sheets to control more than just colors about the look and feel of your Qt Applications.
See things you should be careful about when saving and loading your settings with QSettings
Get to use QSettings in your Qt applications by Saving and Loading your Colors.
Leverage the QFile Class to read from and write to external files.
Learn how to leverage QDir to manipulate directories in your Qt Applications.
See the classes at your service when working with Networks in Qt. It's all about choosing the right tool for the job
Learn the plumbing necessary to use QNetworkAccessManager and it's other helper classes to download stuff from the internet in your Qt Applications. Use these classes the right way.
Learn about JSON support in Qt and how to use the related Qt classes to consume JSON APIs in your Qt applications. We will download blog post JSON data , parse it and show content of our choice in our Qt Gui
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.