Robust Qt & C++ Gui Programming 2D Graphics App Tutorial

Become a confident Qt GUI and C++ software developer with step by step programming tutorials and 2D graphics examples
Rating: 4.3 out of 5 (300 ratings)
11,464 students
Robust Qt & C++ Gui Programming 2D Graphics App Tutorial
Rating: 4.3 out of 5 (300 ratings)
11,476 students
Create a robust, well designed C++ app with Qt, in a bottom-up approach
Use some of Qt toolkit's out-of-the-box functionality to build a Windows app
Draw very interesting and quite unusual 2D geometrical shapes ☆
Develop a C++ program from scratch
Drag and drop UI elements to design a simple GUI (graphical user interface)
Learn to debug your Qt apps
Learn to write scalable, robust and adaptable source code
Use source versioning with Git and SourceTree to commit code changes to online repositories
Use the Qt signal and slots mechanism to handle user interface events

Requirements

  • (Required) Working knowledge of C++ syntax and language fundamentals
  • (Required) Know the basics of OOP (Object Oriented Programming) with C++
  • (Preferable) Understand basic mathematical expressions and functions (sine, cosine, exponential)
  • Know how to create C++ source files
  • Feel comfortable using open source technologies
Description

This course will help you upgrade your C++ software development skills today!

You will learn how to build an application using Qt and C++, from the ground up.

**This course is now FREE as a token of gratitude to my Udemy followers; Enjoy!**

As I've put my heart and soul into producing this course, I understand it's no longer up to date with the Qt platform.

But it does still have valuable insights into robust app design, so I believe you'll find quite a bunch of useful stuff in here

Here's what others have to say about this course:

"Great course. Instructions are clear and accurate. Dan logically teaches how to build an app from the simplest parts to the harder ones. Tasks for you to complete are getting a little bit bigger every time and you don't feel lost between instructions and the tasks as they are connected to each other (unlike in many other courses). Even though for me this course wasn't hard it was useful and I enjoyed it very much. After finishing the course I found out that there are new videos and new tasks! That's awesome! I like that course is being improved! " - Kateryna Brylliantova

"One of the best courses I ever had. Very well structured, very good program structure and complexity of the application. The explanation should be an example for many ohter teachers. A big and real triple-A. Thank You, Dan." - Matthias Kunka

"Well thought out and paced, I have learned quite a few interesting points on robust code."  - Asad Raja

"I felt this was a very good course for intermediary C++ programmers. It has some easy to follow for the novice sections, but also plenty for the seasoned programmer." - Gino Manifred

C++ is a very powerful and versatile programming language.

Qt is multi-platform framework, the perfect choice for open source GUI development with C++.

Before investing in this course, please watch the FREE lectures (30 minutes) to: 

  • see the final app in action (check out the Final App DEMO lesson)

  • decide if this course is really the right one for you

With this course, you will design and create your own C++ program for the Windows platform.

You will add new features to the app, step by step.

You will learn how to write good source code, at professional-level.

You can learn programming in C++ from anyone you wish to, there are many teachers and a lot of free know-how out there.

But if you want to learn to code like a professional, here's my advice to you:

  • Choose to learn from someone who has already done professional level coding

  • Choose a teacher who has a proven track record working experience with C++ and Qt

  • Choose a mentor who has done this for years, and knows what it takes to create industry-level software

Here's how the course is structured. Each lecture prepares the groundwork for the next one. You will:

  • write code in C++ (standard '03)

  • use the Qt toolkit's UI elements to create the GUI (Graphical User Interface)

  • set up the main application window

  • drag and drop the required user interface elements (buttons, widgets, labels, spinners...) on the main window

  • connect UI elements to UI events (mouse clicks, value changed)

  • write custom event handling code that updates the painted graphic

You need to have a good understanding of OOP (Object Oriented Programming) fundamentals, as you will be adding and working with:

  • class member variables

  • class member functions

  • setters / getters

  • private / public / protected access modifiers

  • encapsulation to protect the data

  • constructors and destructors

  • overriding virtual base class functions for Qt objects

  • pointers to objects

You will organize the C++ program logic into header (.h) and implementation (.cpp) source files.

You will design a simple GUI (Graphical User Interface) with QtCreator (part of the Qt toolkit) and use the signal and slots mechanism to make the buttons (and other UI elements) respond to mouse clicks or value changed events.  

You will setup a custom rendering area widget that integrates flawlessly with the Qt5 framework, by inheriting from the QWidget base class and overriding abstract class methods.  

You wil learn how to fix compiler errors that can occur during development.

You will also learn to fix linker errors caused by missing function implementations.  

You will use a bottom-up approach to develop robust software.  

Notice the key word here - robust.  

That means professional-level C++ code.  

You will learn to design reusable programs with programs will be designed with reusability in mind. And will be written with future upgrade capabilities in mind.  

You will also use Math and Geometry in an unexpected way, to create unusual 2D graphics shapes.  

You will also get some hands-on experience by taking the course assignments.

The assignments are designed to get you comfortable with the code and teach you to extend the application on your own, after you have completed the course.

Should I go on or do you want to start learning now?  

I've invested around 10 years into learning software development and have worked 7 years in the IT industry.

Ok, here are a few more things you will get from it:

  • How to create an online repository (with BitBucket)

  • How to use source versioning (with GIT) to save intermediary code changes and revert back to them anytime if you make a mistake  

  • Tips and tricks for good coding practices  

So come on, let's start creating some 2D graphics with Qt5 And C++ Gui Programming!


Who this course is for:
  • You have a solid understanding of C++ syntax
  • You want to learn basic C++ app development with Qt
  • Preferably you are an intermediate developer or programming enthusiast
  • You want to learn how to design and create software from scratch
  • You love software development (especially with C++)
  • You want hands-on coding experience
  • You are a 2D graphics amateur or passionate
Curriculum
4 sections • 40 lectures • 2h 56m total length
  • Introduction
  • Your Final App DEMO
  • Installing The Qt Framework (Required)
  • Installing Git (The Version Control System)
  • Installing Source Tree
  • Creating a BitBucket account
  • Creating The Project
  • First Commit
  • QtCreator shortcuts (GUIDE)
  • Preparing The Render Area
  • Adding Shape Types And Background Colors
  • Setting The Active Shape
  • Drawing The First Shape: The Astroid
  • On Shape Changed
  • Compute Dispatcher
  • Pop Quiz
  • Drawing The Cycloid Shapes
  • Drawing A Parametric Line (Just For Fun)
  • Connecting The Dots
  • Shape Control #1: Scaling The Astroid
  • Shape Control #2: Adding the update_ui() method
  • Shape Control #3: Counting Your Steps
  • Adding A Drop Of Color
  • ASSIGNMENT 1: Update control variables
  • (Solution) Assignment 1
  • ASSIGNMENT 2: Going full-circle
  • (Solution) Assignment 2
  • ASSIGNMENT 3: Focusing on the ellipse
  • (Solution) Assignment 3
  • ASSIGNMENT 4: The fancy curve
  • (Solution) Assignment 4
  • ASSIGNMENT 5: A lucky starfish
  • (Solution) Assignment 5
  • Bug Fixing The Paint Logic
  • The Mighty QPen
  • Cloud Shapes #1: The Puffy Cloud
  • Cloud Shapes #2: Inverted Cloud
  • Introduction To Debugging
  • How To Debug With Qt Creator?
  • C++ & OOP Good Practices (GUIDE)
  • Bonus Lecture: Project Source Code

Instructor
Teacher of Silence, Calm and Presence
Dan Munteanu
  • 4.3 Instructor Rating
  • 356 Reviews
  • 14,853 Students
  • 2 Courses

Hi, I am Dan Munteanu, and I consider myself to be:

➜ a teacher of calm, silence and presence

➜ an amateur DJ

➜ podcaster


My areas of mastery and expertise include:

➜ MeditationSelf Awareness and Introspection (I can teach you a lot about inner calm)

➜ Self HelpPersonal Development (I know how to push the reset button for your mind)

➜ Law of Attraction

➜ Computer Programming (this was a previous passion of mine and I have a lot of expertise in this area)


I have a degree in computer science from a well-known University in Cluj Napoca, Romania.


But in the past years, in my spare time, I learned as much as I could about self-help and personal development, because I had to and I also loved to do it.


I started applying what I learned in real life. And I started getting results. Then, I started teaching others how to do the same. 


I can help you with restoring your self confidence, raising your level of awareness and self knowledge.

My Mission:

Through my courses, I want to help you deepen your awareness and to get the results you seek as soon as possible. 


You see, I have invested thousands of hours into the topics I loved learning. 


Because of this, I have the expertise required to make your learning journey much, much shorter.


I want to bring out the best in yourself.


I am eager to help you reach a deeper level of understanding of your own psychology and, why not, to motivate you to become the best version of yourself.

Are you ready to start learning with me?