This is not a beginners course!
This is an advanced Qt 6 course using C++ to create high performance applications on Windows, Mac and Linux. This course also includes advanced topics such as threading, networking, libraries, plugins, databases, unit testing, and application deployment.
This is a followup to the Udemy Qt 5 Core for beginners and intermediate courses and picks up where they both left off. It is highly recommended to take those courses before attempting this one. In this course you will learn how to work with threads, sockets, libraries, plugins, unit testing, and application deployment across multiple operating systems.
Threading
Threads help make your applications lighting fast. You will learn threading best practices, along with some common misconceptions and mistakes. Additionally we will dive into thread pools which are highly fast and efficient use of threads. And we will cover how to simplify threading using the Qt Concurrent Library.
Networking
We will cover general networking concepts along with who to use both TCP and UDP sockets to communicate with remote servers. This course also covers how to use SSL encryption to maintain a secure connection with the remote host. Later on in the networking section we will demonstrate how to make a basic TCP server, then combine threading and SSL to make a high performance TCP server that can handle a lot of simultaneous connections.
Libraries
We will teach what libraries are, and how you can easily create your own libraries along with how to use libraries created by other developers. This course also covers shared vs static libraries, and even how to make your application expandable by developing a simple plugin system that allows you to dynamically add functionality to your application while its running without recompiling your application.
Databases
This is a broad topic and we will show just the basics of how to use the Qt SQL libraries and vendor drivers to connect to and use databases. We do demonstrate a few concepts using MySql.
Testing
This course will teach how to use the Qt Test library, which will help you perform unit and data driven tests on your application. We will even cover how to perform some simple bench marking to spot performance issues in your code.
Deployment
Deploying your applications to end users is both an art and a science. While there are millions of ways to deploy your applications, we will show some basic techniques for Windows, Mac and Linux. In case you need to have a custom deployment, this course does cover how to compile Qt in both Dynamic and Static linking, which allows you to choose between having a dependency tree or an all in one application.
Before we begin
-
1What does this course cover
-
2Source Code
-
3About the videos
-
4Reviews and feedback
-
5What does this course not cover
-
6Challenges with advanced
-
7Who should take this course
-
8Course prerequisites
-
9If you don’t know C++ or Qt
-
10Who is the instructor
-
11Raw and unfiltered
-
12Qt overview
-
13Courses overview
-
14Qt is massive
-
15What why how recap
-
16Goals of the course
-
17What is Qt
-
18What can you make with Qt
-
19Have Qt installed
-
20Installation issues
-
21Expect issues
-
22Bugs
-
23Skipped the previous courses
Threads
Networking
-
29Synchronous code
-
30Asynchronous code
-
31Threaded code
-
32Synchronous example
-
33Asynchronous example
-
34Creating threads
-
35Inheriting QThread
-
36Thread LifeCycle
-
37QThreadPool
-
38QMutex
-
39QMutexLocker
-
40QSemaphore
-
41QWaitCondition
-
42Signals and slots in threads
-
43What is Qt Concurrent
-
44Intro to Qt Concurrent
-
45QtConcurrent
-
46QtConcurrent issues
-
47QFutureWatcher
-
48QFuture return values
-
49QFutureWatcher Slots
-
50QFutureIterator
-
51QFutureSyncronizer
-
52Threaded example
-
53Assignment
-
54Quiz
Libraries
-
55What is networking
-
56Understanding networks
-
57Ports
-
58Protocols
-
59Network vs internet
-
60Clients
-
61Servers
-
62Hybrid roles
-
63Proxy Servers
-
64DNS
-
65SSL
-
66TCP
-
67UDP
-
68Async Sockets
-
69Threaded Sockets
-
70QHostAddress
-
71QUdpSocket
-
72UDP Chat Example
-
73QTcpSocket
-
74QNetworkProxy
-
75QSslSocket
-
76Synchronous TCP
-
77Synchronous UDP
-
78Asynchronous TCP
-
79Asynchronous UDP
-
80Threaded TCP
-
81Threaded UDP
-
82QNetworkAccessManager HTTP
-
83QNetworkAccessManager FTP
-
84QTcpServer
-
85Multi-threaded TCP Server
-
86Multi-threaded TCP Testing
-
87About SSL Certificates
-
88SSL Server – creating a certificate
-
89SSL Server – creating the server
-
90SSL Server – testing
-
91Assignment
-
92Quiz