Skip to content

2. 构建 EUI ​

选择 2.1 或 2.2 执行即可。创建自己的应用时使用 2.2;它会生成可以复制到应用中的模块目录。

执行位置:EUI 仓库根目录。

powershell
Set-Location $euiRoot
cmake -S . -B build/local -G Ninja -DCMAKE_BUILD_TYPE=Release "-DCMAKE_PREFIX_PATH=$qtKit" -DEUI_BUILD_EXAMPLES=ON -DEUI_BUILD_TESTS=OFF
cmake --build build/local
& ./bin/Release/example.exe

完成标志: Gallery 打开。搜索 EButton,操作按钮,点击“显示源代码”和“复制源码”;页面下方显示组件 API。

程序在 $euiRoot/bin/Release/example.exe,组件模块在旁边的 EUI/。构建还会将模块复制到 $qtKit/qml/EUI/,这个 SDK 目录需要可写。

2.2 为自己的应用构建组件库 ​

执行位置:EUI 仓库根目录。

powershell
Set-Location $euiRoot
cmake -S . -B build/library -G Ninja -DCMAKE_BUILD_TYPE=Release "-DCMAKE_PREFIX_PATH=$qtKit" -DEUI_BUILD_EXAMPLES=OFF -DEUI_BUILD_TESTS=OFF
cmake --build build/library
cmake --install build/library --prefix build/eui-install

完成标志: $euiRoot/build/eui-install/imports/EUI/ 中有 qmldir、euiplugin.dll 和其余模块文件。后续复制这个完整目录。以上使用 Release 配置,应用也使用同一 Qt Kit 和 Release 配置。

2.3 只安装 Qt 6 时构建 ​

无需安装 Qt 5。source/qt5 是共享 QML 源码目录;CMake 使用 Python 将其适配到当前构建目录的 source/qt6,再使用 Qt 6 编译插件和 Gallery。源文件不会被转换脚本覆盖,import EUI 1.0 保持不变。

准备 Qt 6.5 或更高版本的桌面 Kit、匹配的 C++ 编译器、CMake、Ninja 和 Python 3。除了组件库基础模块,还需要 Core5Compat、ShaderTools、Multimedia、SVG;Gallery 需要 WebEngineQuick、WebChannel。Qt 6.8+ 安装 Quick3D、QuickTimeline 后可使用原生 3D 示例。文件选择使用 Qt Quick Dialogs,日历使用 Qt Quick Controls,遮罩使用 Qt5Compat.GraphicalEffects,Shader 在构建时生成 .qsb。

在对应编译器的 Developer PowerShell 中执行,将 $qtKit 改成自己的 Qt 6 Kit:

powershell
$euiRoot = 'D:/code/EUI'
$qtKit = 'D:/Qt/6.8.3/msvc2022_64'
$env:PATH = "$qtKit/bin;" + $env:PATH
Set-Location $euiRoot

cmake -S . -B build/qt6 -G Ninja -DCMAKE_BUILD_TYPE=Release "-DCMAKE_PREFIX_PATH=$qtKit" "-DQT_DIR=$qtKit/lib/cmake/Qt6" "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=$euiRoot/build/qt6/bin" -DEUI_BUILD_EXAMPLES=ON -DEUI_BUILD_TESTS=OFF
cmake --build build/qt6
& ./build/qt6/bin/example.exe

只构建组件库时,将两个 EUI_BUILD_* 选项设为 OFF,再执行 cmake --install build/qt6 --prefix build/eui-install-qt6。接入第 3 节的应用时,使用相同的 $qtKit,并将复制来源改为 build/eui-install-qt6/imports/EUI。Qt 5 和 Qt 6 使用不同的构建、安装和程序目录,不混用两者的 euiplugin.dll。

Qt 5 和 Qt 6 构建产物需使用对应版本的运行库,不能混用 DLL。

基于 MIT 许可发布 · 第三方资源遵循其各自许可