Learn Qt by Udemy course
Tags: udemy, cpp, javascript, qt
Published: 2022-06-06 10:46:05

Notes about Qt course (Translation of Japanese article in 2020)


![qt course toc](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cs4vxnl85hdhcdf2c4a0.png)

## Introduction
Stay home is consensus. Although I prefer stay home natively since born, I noticed the importance of walking recently.

Every course is free or on sale. No schedule to meet people drives learning. Home with children looks hard anyway.

Udemy regularly do sales campaign. I purchased [Qt Quick and QML For Beginners : The Fundamentals](https://www.udemy.com/course/qt_quick_qml_tutorial_for_beginners/) with discount price.

Here are the notes I have learned

## What is Qt?
When we develop desktop native application, we use C++ or C# with Visual Studio for Windows, Objective-C or Swift for MacOS. The tools are different like mobile app development, which we use Swift and Kotlin for iOS and Android.

React Native, Xamarin, Flutter are famous as cross platform development tool. Write once, run each platform.
Qt and Uno Platform are cross platform development tool for desktop app.

**Qt is used by 3dsMax, FireAlpaca, Krita, Kindle, Kobo, VLC media player and Wireshark.  There are many cases.**([Ref](https://qiita.com/hermit4/items/5156203201694966c9e4))

## Qt license
**Originally Qt licenses were only commercial and GPL.** If you wanted to sell product, you had to purchase commercial license. Free meant GPL.  Commercial license price is $3950/year now. If my memory is correct, the price was more expensive.

**In 2009, they changed the plan. LGPL is also applicable.** Free tier widened. Startup and individual developer can purchase special license with discounted 499 USD/year. 

For your information, PyQT is GPL in either case.

## Recent Qt change
Qt was originally develop by C++. **Recent versions support QML(Qt Modeling Language). Creating UI and simple logic is possible by only JavaScript**. In addition, Qt Quick, UI framework is included in the latest version.

Also original build targets were desktop and embedded system. The latest version supports smartphone build and WebAssembly.

## Udemy course
Udemy course is based on QML and Qt Quick. Basically JavaScript is the language. Here are the table of contents.

1. Introduction
2. Dissecting the QML Syntax
3. Qt Quick Basic Elements
4. Signals and Slots
5. User Input Elements
6. Working with Javascript
7. Qt Quick Positioning
8. Qt and Qt Quick on Mobile Devices
9. Qt Quick Controls
10. Dialogs
11. Models Views and Delegates
12. Transforms, Transitions and Animations
13. Networking
14. Storage
15. Best Practices+BONUS

Covering animation easing is awesome.

Well-known Qt features are **signal and slot**. Event by button click can trigger another action like cable. 2015 PyConJP had presentation for this feature.

https://www.youtube.com/watch?v=S_ipiLIClZw

## Pro and Cons
When I took [iOS, Android courses](https://ja.algonote.com/entry/udemy-ios-android), I felt video is good format to learn GUI development. The same advantage applies to Qt too.

On the other hand, the course content is only JavaScript. Full usage of C++ is missing. 

I need to check open source projects for further learning. Techbook fest book is also a good reference.

https://booth.pm/ja/items/1010947

## Qt future
If you check Wikipedia, you find the parent company changes a few times by M&A.

Due to Covid-19, the company is [planning to sell only commercial license for new version](https://www.phoronix.com/scan.php?page=news_item&px=Qt-Might-Restrict-New-Releases). The business health is not very good.

## Future Works
* Xamarin
* React Native
* Electron

https://www.udemy.com/course/qt_quick_qml_tutorial_for_beginners/