Cross platform application development using Qt framework

Take your ability to develop powerful applications for desktop and mobile devices to the next level in 2014.
3.6 (14 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
187 students enrolled
25% off
Take This Course
  • Lectures 41
  • Length 5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 3/2014 English

Course Description

The course will span a total of 6 weeks with 12 different modules. Check the course syllabus below for details.

Karthik Duggirala (From CBTec Oy) is a seasoned software developer with over 8 years experience in developing applications for hand held devices ranging from the Nokia 770 internet tablet to the N9 (MeeGo).

What are the requirements?

  • Basic Knowledge of C++ programming

What am I going to get from this course?

  • Understand the key concepts of Qt
  • Write cross platform applications using Qt
  • Develop applications for mobile and desktop devices.

Who is the target audience?

  • Students
  • Newly graduates
  • Professionals

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Overview of Qt

This course spans for 6 weeks so basic idea is to complete two modules every week .

For Week 1 , we will be covering

  • Module 1: Overview of Qt
  • Module 2: Object Models in Qt

So lets get started with the first module


he Qt SDK installer can be downloaded from here.(choose appropriate installer for your OS) This video is a step by step tutorial to help you set up the Qt development environment and to try and run your first Qt application


Now your development environment should be up and running , now you are all set to start by writing your first application in Qt.

This video is a short tutorial to write a simple Qt program and then try to walk through the code to understand as to what actually goes in the background.It also covers some information about the qmake utility tool.

My first Qt application

In this we will start with very basics of layouts we will use a horizontal layout and a vertical layout and will pack the UI widgets inside these layouts. We will then try out the Qt signals and slots feature.


At the end of this module you would have setup your development environment and would have written your first Qt application. You would have also understood the basic concepts of layouts and would have some idea about Qt's signal and slots feature.

If you are interested i would recommend that you follow the Qt Blog , as it's one place where you will find all Qt development posts from Qt Experts.

It will also be a good if you would join the Qt public mailing lists , i would recommend Interest(List for developers who _use_ Qt) and Qt Creator(List for users and developers of Qt Creator).

Section 2: Object Models in Qt

In this video we will try to look into Qt Basic Types and how Qt handles strings.


In this module we have learnt the internals of Qt Object model , how to create custom Qt signals and slots and how to have our custom type to integrate with Qt Object model such that it can be used as a parameter in signals and slots. We have looked into the moc tool and how Qt supports these features.

If you have any questions, please ask via the the forum.

Coding Task 1
Section 3: Core Classes

In this video we will try to look into Qt Basic Types and how Qt handles strings.

Qt Core Classes
Qt Container Classes

We will take a look at Algorithmic Complexity of Qt Containers in this video.

Know Thy Complexities! : Covers the space and time Big-O complexities of common algorithms used in Computer Science.

Section 4: Qt UI - Widgets and Layouts
Short introduction to Qt GUI
Introduction to Qt Widgets
Built In Qt Widgets - Lets go through the built in widgets provided by Qt
Qt Layouts - Intro on available layouts provided by Qt
Coding Task 2
Section 5: Qt Application

This tutorial explains how to use forms to build your graphical user interface using Qt Designer


This short tutorial on Model View Architecture

Section 6: Qt IPC

This short tutorial will explain the Qt IPC methods

Coding task 3
Section 7: QML and Qt Quick
Introduction to QML & QtQuick
QML - Basic Example
QML- Positioning of Items
QML - States & Transitions
QML - Key Input
QML - Model View Example
Coding task 4
Section 8: Multithreading in Qt
Short introduction to Threads in Qt
How to use threads in Qt
Qt - Move Object to Thread
Section 9: Qt Network Programming
Basic Introduction to Qt Network
Example - Qt program to shorten/expand url
Coding Task 5
Section 10: Qt Webkit - Basic Intro
Introduction to Qt WebKit
Example : A simple application to show Qt Webkit in action
Coding task 6
Section 11: Mobile development using Qt

In order to start development applications for Android , you first need to install the Android SDK along with some other packages. To begin with

  • Android Debug Bridge (ADB) - Driver on the Windows platform to enable USB debugging.

These instructions are also available at Qt for Android - Getting Started

Once you have installed the Android SDK , you need to updated the SDK to install the API and tools packages.

In linux OS , you can launch the eclipse IDE that comes with the SDK and go to Window->Android SDK Manager

It should launch the UI and you should be able to install the required API and tools packages. Basically you need to choose

Android SDK Build Tools

Android 4.4.2 (API 19) (latest ) or other available options

Extras - You can choose your packages here

* If not with Eclipse , you can use the command line tool e.g in Ubuntu : ./android update sdk (android - can be found inside


After this the SDK manager install your packages and you should be ready to start development for Android ,

some more instructions you can find in the video below, these are to set the android SDK paths in QtCreator.


To install Qt libraries required by your Qt application you can either bundle the same with your apk or you can use Ministro (you can read about it here)

Please follow these instructions of How to install Ministro , on your device .


Qt and QML technologies are used by Jolla . If you want to work with Jolla , you can download the Jolla SDK and follow the instructions here to get started. The installations will be very much similar to QT SDK install , so it should go fine . If any questions please post to forum.

With permissions from the course creator of 'Become a Developer of SailFish OS' have attached a video which explains a example 'Hello World' application.

Dissecting Hello World - Jolla

Section 12: Qt Graphics
Graphics intro
Final course project

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

CBTec Oy, Democratizing education with technology

CBTec is a company located in Finland, global leader in education, founded by Ex-Nokia and Meego veterans, offering high quality learning solutions and training courses. Under the vision on providing the best learning materials and strategies, we aim to democratize education with technology, applied to your business, studies and personal life.

Instructor Biography

Mr. Karthik Duggirala, Sr Software Engineer at CBTec

8+ years of experience in conceptualizing , designing, prototyping, testing and development of products for mobile platforms .

Experience in working cross functionally with development, testing, build systems & product management teams for delivering products.
Expertise in the areas of data synchronization , PIM (Calendar & Contacts), Backup & Restore, E-Mail.
Experience in android applications development.
Experienced in different testing levels, Unit, Module, System Testing, Test Automation and Error Management.
Have the passion , commitment and motivation to take independent responsibility as well as ability to contribute and be a productive team member.
Possess good interpersonal and communication skills.


* C/C++, Qt/Qml, Python, GStreamer, GTK, SQLite, Shell scripting, JavaScript, JQuery, Backbone.js
* Gdb/ddd, Eclipse, Svn, Git
* Certified on Scrum master role

Sr Software Engineer

CBTec Oy

September 2012 - Current (1 year and 8months)


Development of Eliademy ( )
Integration with social networking sites (Facebook/Google+/LinkedIn) and third party applications.
Development of android client for

Software Developer at Wipro Technologies

August 2005 - December 2009 (4 years and 5 months)

Involved in developing of applications for Nokia devices.

Development of a music streaming client for the Nokia tablet.
Involved in development of the Camera application .
Development of Calendar and Synchronization application for N900.
Development of a utility tool for reporting bugs. Tool had the ability to take snapshots and video's and also collect the relevant system information to help analyze the bug.
Development of a automation test framework for UI test automation.
Development of utility applications for the N800 like email notifier, Tasks reminder, RC application for controlling the music player from phone etc

Worked with Clients to get a clear understanding of the requirements , co-ordinated requests between client and off site development team.

Software Developer at Nokia

January 2010 - August 2012 (2 years and 8 months)

Development of Sync application for N9 . Was involved in the development of the sync framework , syncML stack and UI.
Involved in the development of the plugins for the sync framework which faciliated the syncing of device contacts, calendar , bookmarks and messages.
Development of account and custom sync plugins for syncing data with online services.
Development of Obex plugin to backup data with Nokia Desktop client.
Actively participated in resolving issues related to interoperability, data formats, UI flow & design.
Involved in maintainence of Backup & Restore client for the N9 device
Involved in development and bug fixing in QMF (Qt Messaging Framework).
Involved in the development of the test automation framework and automation of test cases
for the QMF.
Analyzing issues with power consumption for the applications and backend services which prevented device to go to low power mode.
Contributed to continuous SW quality improvement activities. Analyzing issues related to power consumption, memory management and benchmarking with other available solutions (sync).Provided visibility by reports and metrics.

Ready to start learning?
Take This Course