Skip to main content

Qt / C++ integration

Integration layers​

LayerPurpose
C ABIHandle-based multi-instance interface for Win32, Cocoa and other hosts
C++ DesktopSdkC++17 facade for commands, events and snapshots
Qt EduSdkQtQt wrapper and HostEffect execution
EduSdk::UiQtSupplied Qt Widgets classroom interface

Desktop adapters handle native media and whiteboard operations. Low-level C/C++ hosts must implement HostEffect handling for backend HTTP, IM, RTC and whiteboards.

Platforms and dependencies​

Native releases target macOS arm64, macOS x86_64 and Windows x86_64. macOS has separate architecture packages. There is no complete Linux Qt classroom distribution.

The Qt example requires Python 3.9+, CMake 3.21+, Qt 6.5+ and Qt modules including Network and Multimedia. CMake downloads and verifies DrawsKit Desktop 0.1.3. OpenIM and TRTC require official native libraries for the target OS.

macOS source example​

From edu-sdks:

make build-desktop
./scripts/prepare-openim-desktop.sh
./scripts/prepare-qt-desktop.sh
cmake -S examples/desktop-qt -B build/desktop-qt
cmake --build build/desktop-qt
./build/desktop-qt/edusdk-desktop-qt-demo

Enter the sdk-api endpoint, classroom ID, eduUserId and user token in the launch screen. Alternatively set EDUSDK_BACKEND_URL, EDUSDK_CLASSROOM_ID, EDUSDK_USER_ID and EDUSDK_USER_TOKEN. Non-Release builds default to the development environment.

Windows build​

Build the Windows x64 EduSDK Core and prepare OpenIM C SDK plus TRTC Windows C++ SDK, then configure:

cmake -S examples/desktop-qt -B build/desktop-qt -A x64 `
-DOPENIM_SDK_ROOT=C:\sdk\openim\win64 `
-DTENCENT_TRTC_SDK_ROOT=C:\sdk\trtc\SDK\CPlusPlus\Win64
cmake --build build/desktop-qt --config Release

Link the Windows OpenIM and TRTC native libraries, then test multi-user entry on the target system. examples/desktop-cpp uses Mock HostEffect for interface and lifecycle examples. Use examples/desktop-qt for media integration.

Use the CMake definitions in platforms/desktop and ui/desktop/qt when integrating into your own project. Follow examples/desktop-qt for HostEffect runner and adapter setup. Release UI, providers and SDK instances before unloading libraries during window exit.