We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Qt 5 C++ GUI Development - Intermediate

Daniel Gakwaya

Special note : This course is based on Qt 5. Qt 6, released in December 2020 is the latest version. We are working on updates to take  Qt 6 into account that will be completed over the next couple of months. In the mean time, we recommend using Qt 5 for the best experience with the course.

Read more

Special note : This course is based on Qt 5. Qt 6, released in December 2020 is the latest version. We are working on updates to take  Qt 6 into account that will be completed over the next couple of months. In the mean time, we recommend using Qt 5 for the best experience with the course.

Qt is a mature cross platform application development framework you can use to develop for Windows, Mac ,Linux, Mobile and Embedded Devices.

This course will teach you some of the advanced features of the Qt framework. This  is not a beginners course.  It is a follow up course on our Qt 5 C++ GUI Development for Beginners course, so you should have completed that course or have similar experience from elsewhere.

The course is packed with lots of tips and tricks, to help you master what it takes to build professional GUI applications using C++ and Qt.  The lectures are carefully designed and revolving around demos that are to the point and easy to understand. Cutting down the fat and helping you understand a given topic at hand.

This course is is not just about theory and simple demos. No .

We will do theory and simple demos because you need that to understand the basics.

But we will go even further and not build  full fledged practical projects for you to put together and practice all the knowledge in the course. You will build a clone of the Flappy Bird game and a full fledged painting application that supports tons of cool features like drawing with the pen, erasing , re-sizable shapes, copy, cut and paste, drag and drop , undo redo , saving and loading documents and many more features.

Here are some of things you'll get to master in the course :

  • Event Programming in Qt

  • Building Custom Widgets

  • Painting and Drawing with Qt

  • Drag and Drop in Qt Widgets

  • Advanced Features in Qt Model View Programming

  • Graphics View Framework

  • Copy, Cut and Paste Features in GUI applications

  • Building Resizable Graphics Items

  • Saving and Loading Documents in your Qt applications

  • Undo Redo

  • Building read only and editable tree models from scratch

  • Supporting multiple languages in your Qt C++ GUI applications

  • Deploying your Qt applications on Windows, Mac and Linux and way way more...

Towards the end we will build a complete Graphics View based Painting application and a clone of the popular Flappy Bird game for you to put together and use all the knowledge in the course on real projects.

The course was carefully designed to get you to build projects step by step, making even complex concepts easy to understand. If you're looking to build professional grade Qt C++ GUI applications, then this course will help you get there in the shortest amount of time possible.

Qt is the platform of choice for thousands of software projects, both open source and commercial, including the one we to record our videos. If you want to use C++  to build professional grade GUI applications, that can run virtually on any platform out there, Qt is second to none in that regard. Please check out some of the preview videos and let's get you started building professional C++ GUI applications using Qt.

Enroll now

What's inside

Learning objectives

  • Event programming
  • Custom widgets
  • Painting and drawing
  • Drag and drop
  • Copying data through the clipboard
  • Model view architecture
  • Graphics view framework
  • Implementing copy, cut and paste features in qt apps
  • Saving and loading documents
  • Undo redo in qt apps
  • Building resizable items in graphics view
  • Multi language support in qt apps
  • Deploying qt applications on windows and linux and mac
  • Building games and painting applications with qt
  • Show more
  • Show less

Syllabus

Introduction
Welcome
Teaser
Event Handling
Read more
Overview of Events in Qt
Events Demo : Playing with Events
Event Loop, Propagation, and Methods To Handle Events : Theory
Event Propagation
Handle Events : Override QApplication::notify
Handle Events : Override QObject::event
Handle Events : Event Filter On QApplication
Handle Events : Event Filter On QObject
Event Sources : Posting and Sending Events - Theory
Posting and Sending your own Events : A Demo
Event Handling : Section Overview
Custom Widgets
Custom Widgets Overview
Composing Widgets
Modifying Existing Widgets
Modifying Existing Widgets : Double Clickable Button
Custom Widgets From Scratch
Promoting Widgets
Making Your Custom Widgets Available in Qt Creator(Designer)
Section Overview
Painting and Drawing
Drawing Overview
Coordinate Systems
Drawing on Pixmaps
Drawing Shapes
QPen
QBrush
Brush Gradients
PainterPath
Painter Transforms
Draw Car Demo
Shape Maker Demo Part 1/2
Shape Maker Demo Part 2/2
PainterApp v1 : Concepts
PainterApp v1 : Setting Up User Interface
PainterApp v1 : Setting Up Drawing Canvas
PainterApp v1 : Drawing Shapes
Section Review
Drag and Drop / Clipboard
Drag and Drop in Widgets : Chapter Overview
Drag and Drop Overview
Drag and Drop : A Demo
Dragging an Image : A Demo
Dragging and Dropping Between Widgets : Concepts
Dragging and Dropping Between Widgets : Project Setup
Dragging and Dropping Between Widgets : Initiating Drag Events
Dragging and Dropping Between Widgets : Handling Drop Events
Subclassing MimeData : A Demo
Working with the Clipboard : A Demo
Clipboard Demo2 : Painter App with Clipboard
Drag and Drop in Widgets : Chapter Review
Model View Architecture Advanced
Model View Architecture : Chapter Overview
Predefined Widgets : QListWidget
Predefined View Widgets : TableWidget

Code : 3QTreeWidgetDemo

4QFileSystemModelDemo

Code : 5StringListModelDemo

Code : 6QStortFilterProxyModel

Code : 7CustomModelReadOnlyModelDemo

Code : 8CustomModelEditableWithHeaderDataDemo

Code : 9CustomModelAddingRemovingRowsDemo

Code : 10CustomModelCustomRolesDemo

Code : 11PersonModelTableModelVersion

Custom Models : Delegates

Code : 12DelegatesDemo1

Code : 13-DelegatesCustomPaintingDemo

Challenge : Delegates

Code : 15-CustomStarDelegateDemo

Code : 16-DragAndDropDemo1

Drag and Drop at Item Level
Drag and Drop in Custom Models
Custom Full Read Only Tree Model - Overview
Custom Full Read Only Tree Model - Reading Data From File
Custom Full Read Only Tree Model - Person Model, Wrapping Data
Custom Full Editable Tree Model : Overview
Custom Full Editable Tree Model : Person
Custom Full Editable Tree Model : PersonModel
Custom Full Editable Tree Model : User Interface
Graphics View Framework
Graphics View Framework : Chapter Overview

Code : 1-GraphicsViewDemo

Code : 2-EventPropagationDemo

Getting Started : Coordinate Systems

Code : 4-SelectionsDemo

Code : 5-TransformsDemo

Drawing Items
Working with Selections
Working with Transforms
Working with Selection Areas : Set Up
Working with Selection Areas : Draw Foreground , Draw Background
Working with Selection Areas : Zooming, Reset and Fit in View
Building Resizable Items : Theory

Code : 14-GraphicsViewPainter

Resizable Items : Raw Resizable Pixmap and Star Item

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Examines advanced features of the Qt framework, which is used in many commercial and open source professional software projects, such as the software used to make this course
Teaches advanced Qt C++ features typically used by developers to build professional grade GUI applications
Explores real world use of Qt advanced features, such as in a Graphics View based Painting application and a clone of the popular Flappy Bird game
Assumes prior knowledge and experience with C++ and the Qt framework, making it suitable for intermediate to advanced learners who have experience with these technologies
Recommends using Qt 5 for the best course experience, with plans to update the course to include the latest version in the future

Save this course

Save Qt 5 C++ GUI Development - Intermediate to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Qt 5 C++ GUI Development - Intermediate with these activities:
Review Qt Widgets
Prepare for the course by reviewing key concepts related to Qt. It will provide a strong foundation for understanding the advanced features that will be covered in the course.
Show steps
  • Review the documentation for QWidget and its subclasses.
  • Create a simple Qt application using QWidget and its subclasses.
Review Qt Concepts
Reviewing Qt concepts will help you refresh your understanding of the fundamentals and prepare you for the more advanced topics covered in the course.
Browse courses on Qt
Show steps
  • Read through the Qt documentation
  • Review the Qt tutorials
  • Try out some of the Qt examples
Qt C++ Study Group
Collaborate with other students to form a study group, sharing knowledge, discussing concepts, and solidifying understanding
Show steps
  • Find a group of interested learners
  • Establish regular meeting times
  • Set up a communication channel
  • Decide on study topics
  • Facilitate discussions and share knowledge
16 other activities
Expand to see all activities and additional details
Show all 19 activities
Building a custom GUI using Qt
Build a simple GUI application using Qt to reinforce concepts of GUI development and Qt framework.
Show steps
  • Plan the GUI layout and functionality
  • Create a new Qt project
  • Design the GUI using Qt Designer or code
  • Implement the GUI functionality using Qt signals and slots
  • Test and debug the GUI application
Practice Qt signal and slot connections
Strengthens understanding and proficiency in using Qt's signal-slot mechanism.
Browse courses on Signals and Slots
Show steps
  • Create a simple Qt project
  • Define signals and slots in your Qt classes
  • Connect signals and slots using Qt's connection syntax
  • Test and debug the signal-slot connections
  • Experiment with different signal-slot connection types
Follow a tutorial on Qt model-view architecture
Provides structured guidance on understanding and implementing the model-view architecture in Qt.
Show steps
  • Find a reputable tutorial on Qt model-view architecture
  • Follow the tutorial step by step
  • Experiment with the code examples provided in the tutorial
  • Apply the concepts learned to your own Qt projects
Follow a Qt Tutorial
Following a Qt tutorial will provide you with step-by-step instructions on how to build a specific Qt application.
Show steps
  • Find a Qt tutorial that interests you
  • Follow the tutorial instructions
  • Test your application
Custom Widget Development Tutorial
Follow a guided tutorial to explore the process of creating custom widgets, enhancing understanding and practical implementation
Show steps
  • Find a suitable tutorial on custom widget development
  • Set up the development environment
  • Create a new Qt project
  • Implement the custom widget
  • Test the custom widget in the Qt application
Graphics View Tutorial
Explore the Graphics View framework through an online tutorial, gaining practical experience and reinforcing understanding
Show steps
  • Find a suitable tutorial on the Graphics View framework
  • Set up the development environment
  • Implement the Graphics View framework in a Qt application
  • Test the application and explore the features
Follow a tutorial on Drag and Drop in Qt
Supplement your understanding of drag and drop in Qt by following a guided tutorial. This will provide hands-on practice and reinforce the concepts covered in the course.
Browse courses on Drag and Drop
Show steps
  • Find a reputable tutorial on drag and drop in Qt.
  • Follow the tutorial step-by-step, implementing the concepts in your own Qt project.
Build a Simple Qt Application
Building a simple Qt application will help you apply your understanding of Qt concepts and gain hands-on experience.
Show steps
  • Set up a new Qt project
  • Create a simple user interface
  • Write code to handle user input
  • Test your application
Solve LeetCode problems related to Qt concepts
Enhance your problem-solving skills and reinforce your understanding of Qt concepts by solving LeetCode problems. This will provide a challenging and engaging way to test your knowledge.
Browse courses on Qt
Show steps
  • Identify LeetCode problems related to Qt concepts.
  • Solve the problems using Qt.
Write a blog post about Qt event handling
Demonstrates understanding and communication skills on event handling in Qt.
Browse courses on Event Handling
Show steps
  • Choose a specific aspect of Qt event handling to focus on
  • Research and gather information about the topic
  • Write a draft of the blog post
  • Review and edit the blog post
  • Publish the blog post on a relevant platform
Event Propagation Practice
Examine event propagation and practice handling events to reinforce understanding of event handling in Qt C++
Show steps
  • Discover event propagation mechanisms
  • Implement event handlers for specific events
  • Test event handling in a Qt application
Qt Documentation Contribution
Contribute to the Qt documentation by identifying areas for improvement and updating or adding content, deepening familiarity with Qt C++ concepts
Browse courses on Qt
Show steps
  • Identify areas for documentation improvement
  • Draft the proposed documentation changes
  • Submit a pull request to the Qt repository
  • Respond to feedback and make revisions
  • Track the status of the pull request
Write a blog post on Qt's Model View Architecture
Solidify your understanding of Qt's Model View Architecture by writing a blog post on the topic. This will force you to organize your thoughts and explain the concepts in a clear and concise way.
Show steps
  • Research Qt's Model View Architecture thoroughly.
  • Identify the key concepts and benefits of using Model View Architecture.
  • Write an outline for your blog post.
  • Write the content for your blog post.
  • Proofread and publish your blog post.
Build a Qt Project of Your Own
Building your own Qt project will allow you to apply your skills and knowledge to a real-world scenario.
Show steps
  • Come up with an idea for your project
  • Design the user interface
  • Write code to implement the functionality
  • Test and debug your application
  • Deploy your application
Painting Application Demo
Develop a simple painting application using Qt C++ to demonstrate the concepts of drawing, shapes, and user interaction
Show steps
  • Set up a new Qt project
  • Implement the basic user interface
  • Create a custom drawing area
  • Implement drawing functionality
  • Test the painting application
Drag and Drop File Explorer
Create a file explorer application with drag and drop functionality to consolidate knowledge of model view architecture, data manipulation, and event handling
Browse courses on Drag and Drop
Show steps
  • Set up a new Qt project
  • Create a file model
  • Implement the user interface
  • Implement drag and drop functionality
  • Test the file explorer application

Career center

Learners who complete Qt 5 C++ GUI Development - Intermediate will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Qt 5 C++ GUI Development - Intermediate.
Qt 5 C++ GUI Development For Beginners : The Fundamentals
Most relevant
Python GUI Programming Recipes using PyQt5
Most relevant
Integrating Qt Quick 5 with C++
Most relevant
Introduction to Qt 5.2: A C++ Cross Platform Application...
Most relevant
Python Desktop Application Development
Most relevant
GUI Programming with Python
Estimating the Work within Your Team - Get the Most Value...
Java Swing (GUI) Programming: From Beginner to Expert
Geospatial Analysis With Python (Vector Data)
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2024 OpenCourser