Qt Application Programming with C++
Goal: Get started with Qt and learn to develop GUI applications using Qt framework. Delivered as a weekend workshop, this Qt programming course will enable you to design, develop and debug applications on your own backed with sound fundamentals.
Target audience: Working professionals who want to get started with Qt programming
Duration: 4 days + One month lab assistance
- Sound fundamentals: Understand core concepts of Qt framework from scratch
- DIY approach:Build a complete GUI application in a hands-on way in each session
- Debugging:Learn debugging techniques for Qt applications
- Lab support:For one month to ensure follow-up on assignments and projects
- Expert trainers:Delivered by industry experienced expert trainers
- Call us at +91 809 555 7333 (Mobile), +91 80 4128 9576 (Office) and enroll
- Simply send us an email firstname.lastname@example.org
Our programming with Qt course start with setting up your own development environment using QtCreator IDE and developing your first sample application. Further it covers core Qt concepts with hands-on programming sessions, thereby enabling your skill and confidence to build a complete GUI based application on your own. You can download detailed Qt programming course syllabus below.
- Incrementally build a GUI based application with ample hands-on sessions
- Practically go through complete app life cycle – design, develop and debug
- Apply core concepts – Design pattern, Event handling and multi-threading in GUI applications
- Build sound understanding of Qt resource system to leverage in your applications
- Understand and apply design elements using painting
- Introduction & setting up your development environment
- Qt framework core concepts
- Qt core and utility classes
- Developing UI using widgets and designer
- Design patterns
- Multi-threading in Qt
- Qt build system
- Debugging applications
- Multimedia using Qt
- Preview of QML
- One month lab assistance
- Good programming skills and proficient in C++ language
- Basic hands-on Linux Usage
- Any Linux platform supporting QT (Preferably Ubuntu)
Qt Application Programming with C++ course schedule for weekend workshops is provided below.
|Qt Weekend workshop – For working professionals|
|Qt Application Programming with C++||28,29 Sept – 2019 & 5,6 Oct – 2019 (Registrations open)||4 days + 1 Month Lab Assistance|
|UI Programming with Qt-Quick and QML||Contact Office …||2 days + 1 Month Lab Assistance|
|Qt Application Development for Embedded systems||Contact Office …||2 days + 1 Month Lab Assistance|
|Other Weekend workshops – For working professionals|
|Embedded Android System Development||22,23,29,30 June – 2019 (Registrations closed)||4 days + 1 Month Lab Assistance|
|Linux Systems & Basic Shell Scripting||6,7 July – 2019 (Registrations open)||2 days + 2 Weeks Lab Assistance|
|Advanced C / Embedded C||13,14,20,21,27 July – 2019 (Registrations open)||5 days + 1 Month Lab Assistance|
|Micro-Controllers||28 July – 2019 & 3,4,10 Aug – 2019 (Registrations open)||4 days + 1 Month Lab Assistance|
|Data Structures||11,17,18 Aug – 2019 (Registrations open)||3 days + 1 Month Lab Assistance|
|Linux Internals & Network Programming||24, 25,31 Aug – 2019 & 1 Sept – 2019 (Registrations open)||4 days + 1 Month Lab Assistance|
|Embedded Linux on ARM (ELARM)||7,8,14,15 Sept – 2019 (Registrations open)||4 days + 1 Month Lab Assistance|
|C++||21,22 Sept – 2019 (Registrations open)||2 days + 1 Month Lab Assistance|
|Qt Application Programming with C++||28,29 Sept – 2019 & 5,6, Oct – 2019 (Registrations open)||4 days + 1 Month Lab Assistance|
|Linux device drivers||1,2,8,9 June – 2019 (Registrations Closed)||4 days + 1 Month Lab Assistance|
Qt Platform - FAQ
What is Qt?
Qt is a cross-platform GUI application development framework for various hardware and software platforms (E.g. desktop, embedded and mobile). It is supported in all major platforms like Linux, OS X, Windows, VxWorks, QNX, Android, iOS, Black-Berry, Sailfish OS and others. Qt is not a programming language on its own. It is a framework written in C++. You write the code once and make binaries for all platforms with a little or no change in the code.
Why I choose Qt over Android(Java)?
Android also very popular in embedded systems. But to develop android applications we need to learn Java. Java is an excellent language, but for Android mobile development, C++ has a few advantages. These include a smaller memory footprint, as C++ is nearer the metal and has no garbage collection. C++ is a superset of C and should compile virtually all C programs, so you could reuse C software. If you’re an experienced C++ developer who wants to get into Android development, using Qt is a better choice.
Who can learn Qt?
Qt is primarily aimed for Application developers who can come any any of the categories.
- Programmers developing applications for desktops, embedded devices and/or targeting multiple platforms – Windows, UNIX and Mac will greatly benefit from this training.
- Beginners: Who knows C++ and interested to learn GUI frameworks
How should I start learning Qt?
One of the most popular ways of discovering new technologies is to walk through examples. Qt provides a large selection of examples and demos which are available in source code (check demos and examples directories in your installation). Most of the examples and demos are pre-compiled and integrated into the Examples and Demos Launcher.
At some point you should take some time to walk through the Qt technology guides and overviews provided in Qt documentation. Qt is simple to use, but you should have a basic understanding of the key concepts behind Qt to reveal its full power. There is a large selection of documents that are sorted into the http://doc.qt.io/
What are the product domains where Qt is extensively built?
- Anti-virus softwares
- Audio/video applications
- Email clients
- Graphical editors
- Audio/video/chat/voip clients applications
- UI (KDE & Unity)
- Web browsers
- Text editors
- Virtual computer softwares
Course - FAQ
What are prerequisites for this course?
Should have functional knowledge about C++. You do not need to be a C++ expert to begin. Qt simplifies many aspects of C++ development, making it a lot of fun. The overall development effort is minimal since Qt API are easy to understand and application functionality can be implemented with a smaller amount of code. C++ experts will find a lot of powerful API’s and tools in Qt which will make complicated things simple and new features easy to get done. Awareness of at-least on UI toolkit is a plus, but not required, Should be comfortable using a GNU/Linux distribution.
- C++ language basics:
- Data types, Operators, Arrays, Pointers, Functions
- Reference variables
- Knowledge about OOPS concepts.
- Objects classes
- Declaring a class
- Access control (private, public, protected)
- Object creation (Static and dynamic)
- Calling member functions etc.
- Constructors & Destructors
- Qualifies: const, static etc.
- Operator and function overloading
- Type casting
How much time will take to understand basics of Qt?
If your C++ skills are good then within two days you can pick up all Qt basics.
What are the difference between commercial and open source versions of Qt?
Only difference is the licensing. As a rule of thumb, if you are coding a free software application, you don’t need to pay any license. If you are coding a proprietary software which you want to sell for money, you need to use commercial version.
As we know Qt is an open-source, if you change anything in Qt-core or any Qt-library must be shared. Most people either just consume the Qt library and don’t change it, or any changes they might make are so basic that they don’t mind them being shared. In that case open-source is enough.
It won’t make any difference to a developer who just wants to use Qt as a library, unmodified for general things like GUI, algorithms, etc. For better clarification you must read GPL and LGPL license documentation.
What are advantages in commercial version?
Although the free version looks feature rich, its license is unfavorable to develop and extend it further and keep it closed. The free version comes with a Copyleft license like LGPL. On the paid version, you pay them to re-license Qt under some other terms.
You can statically link with Qt libraries in commercial versions, were in open-source only dynamic linking is possible. Which means a runtime dependency for your application.
I know Python/Perl/Ruby/CSS/JS/XML can I use these with Qt?
Most Qt developers use C++ (the language that Qt is written in), often in association with QML. There are however, other programming languages that can be used with Qt.Following are the third party binding for Qt:
- PySide: Python for Qt (LGPL)
- PyQt (GPL 3/commercial)
- Qt for Java (QtJambi, Windows/Mac/Linux)
- Qt for Ring (RingQt)
- Qt for Rust (Rust-Qt)
- Qt for Ruby (QtRuby)
- Qt for BASIC (Kbasic)
- Qt for Ada 2005 (QtAda)
- Official PerlQt and PerlKDE
- Qt for C# (Qyoto)
- Qt for PHP (PHP-Qt) and many more.
Qt Project & Support - FAQ
What about Qt online support?
The Qt Company support team works hand-in-hand with Qt R&D developers and is committed to ensure the success of your project. We provide our commercial customers with exceptional support and guidance on the use of Qt APIs, functions, methods and programming techniques for all major platforms.
There are lots of forums and communities available to support you
What about the Qt documentation?
Compared to other frameworks, Qt has an extensive documentation support and a collection of code samples and tutorials are provided with Qt to help new users get started with Qt development. These documents cover a range of topics, from basic use of widgets to step-by-step tutorials that show how an application is put together.
How learning Qt can enhance my career growth?
Moreover as a GUI application framework, it is a cross-platform framework. As an embedded or non-embedded engineer it’s always worth learning Qt. For the next several years – there will always be a niche market for Qt developers. And there will be a demand for a few really good Qt developers for a very long time.