
This lecture clarifies that the course is not a beginner’s course and urges learners to study C++ basics with free tutorials before tackling Qt 6 core advanced topics.
Bryan Cairns introduces himself as the instructor for Qt 6 core advanced with C++, describing his work with Void Realm's, official Qt videos, and a Facebook group of developers.
Tackle advanced topics in Qt 6 core with C++, embrace real-world complexity, handle errors, and develop patience while navigating C++ foundations, Qt specifics, and cross-platform differences.
Guide students who skipped earlier courses to review fundamentals in C++ and Qt, covering core concepts, signals and slots, Qt classes, collections, QStrings, and filesystems.
Explore how to use the Qt maintenance tool to update components, install modules, and manage versions, with tips on disk space and selecting desktop, compatibility module, and source code options.
Learn to simplify multithreading by using Qt's QThreadPool and QRunnable to reuse threads, auto-delete runnables, and build a resource-efficient, multithreaded application.
Learn to simplify mutex handling with QMutexLocker in a Qt thread pool, replacing manual lock/unlock in QRunnable tasks to prevent deadlocks and ensure automatic unlock.
Explore cross-thread communication in Qt 6 core advanced with C++ by using signals and slots across threads within a runnable running on a thread pool, implementing a producer–consumer pattern.
Learn to iterate over multiple future values with QFutureIterator using Java style, index style, Qt style, and standard library approaches, including synchronous and asynchronous patterns and mapped results.
Spin up a manager to control multiple workers on different threads using Qt concurrent and signals and slots, coordinating start and stop commands with a timer-based event loop.
Explore how routers and switches interconnect networks and devices, from LANs to WANs and the internet, and understand internal and external IP addressing and topologies like star and mesh.
Explore the OSI model from physical to application layers, and understand how ports and well-known numbers enable TCP or UDP communication between applications, with examples.
Proxy servers act on behalf of the client to relay requests and responses, enabling filtering, security, and controlled access while offering potential anonymity.
Learn how ssl and https create an encrypted channel between client and server, with certificates verified by a certificate authority using fingerprint and the common name, as shown by Udemy.com.
Explore the UDP protocol, a connectionless, fast data sending approach where messages travel without guaranteed delivery or verification, contrasted with TCP's reliable three-way handshake.
Explore how Qt's QHostAddress and QNetworkInterface expose multiple interfaces and addresses, including IPv4 and IPv6, loopback, DNS, and proxies, with TCP and UDP sockets.
Build a full udp chat in Qt, using threading and the concurrent framework, with a chat class and a command line reader that sends and receives data.
Explore using Qt 6 QTcpSocket to connect to a web server, perform a basic HTTP-like exchange, and handle socket states, readyRead, DNS lookups, and port 80 via signals and slots.
Learn synchronous tcp sockets in Qt 6 by connecting to a host, blocking the main thread with wait and timeouts, then send a rudimentary http request and read the response.
Wire a TCP socket to a QObject with signals and slots, this lecture demonstrates asynchronous, non-blocking communication on the main thread and common error handling.
Explore asynchronous UDP in Qt 6 core advanced with C++, binding sockets and broadcasting data on a port with QUdpSocket, featuring readyRead signals, and the efficiency of asynchronous patterns.
Learn to build a QTcpServer-based tcp server in Qt by implementing a QTcpServer, handling new connections, and reading data with a QTcpSocket, while listening on a chosen port.
Configure the local certificate chain for the SSL server, load the certificate file into the socket, and use OpenSSL tools to debug handshake failures when testing Qt 6 SSL server.
Compare shared and static libraries in Qt 6 core, covering compile times, deployment, binary compatibility, and why developers often favor shared libraries.
Create a shared library in Qt 6 with C++, configure CMake with add_subdirectory, export symbols, and link the library into an application using the core module.
Explore loading a database driver with QPluginLoader in Qt core advanced, test the plugin, and connect to a remote MySQL database via QSqlDatabase, with cross-platform setup notes.
Inspect installed database drivers with QSqlDriver and QSqlDatabase, print each driver, and explore capabilities such as transactions, query size, blob, unicode, and last insert id, across MySQL and other drivers.
Explore the testing life cycle with QTest and QExec, showing how a test case initializes, runs tests like dog bark, and cleans up after each test.
Master benchmarking with QBenchmark in Qt 6 core advanced. Learn to time code blocks, test for and for each, and compare strings to interpret scores and iterations.
Learn how to skip unreliable tests and anticipate failures using QSkip and QExpect fail, choose abort or continue modes, and interpret X fail indicators.
Package your application with its dependency tree for end users in a simple pattern. Explore basic deployment across operating systems, from self-extracting zips to bootloaders and cloud delivery.
Forgive the audio on this one, my mac is older and did not like my microphone.
Deploy Qt on Linux by using Linux Deploy Qt and AppImage Kit to bundle libraries into a single, self-contained binary, navigating static linking and Unix packaging complexities for easy distribution.
Just in case you need it, here is a video I created on how to build Qt in both Dynamic and Static configurations. If you want to build your applications in static linking (all one executable) you must first build Qt statically.
Build cross-platform installers with the Qt installer framework, supporting online and offline deployments on Linux, Windows, and Mac, with customizable updates and end-user workflows.
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.
Featuring closed caption in: English, Hindi, Korean, Spanish, Traditional Chinese