Files
2026-10-16 17:27:30 +08:00

23 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# 由两个 Qt 启动器 source;独立目录固定 PySide6 和 shiboken,不替换 ROS 环境的包。
orisys_qt_env() {
local qt_version="6.8.3" qt_python qt_dir qt_temp
qt_python="$(python3 -c 'import sys; print(f"{sys.version_info.major}{sys.version_info.minor}")')"
qt_dir="${XDG_DATA_HOME:-${HOME}/.local/share}/orisys_arm/qt-${qt_version}-py${qt_python}"
if ! PYTHONPATH="${qt_dir}" python3 -c 'import PySide6, shiboken6; assert PySide6.__version__ == shiboken6.__version__ == "6.8.3"' >/dev/null 2>&1; then
echo "[Qt] 首次安装工位独立界面依赖 PySide6 ${qt_version}……" >&2
mkdir -p "$(dirname "${qt_dir}")"
qt_temp="$(mktemp -d "${qt_dir}.XXXXXX")"
if ! python3 -m pip install --disable-pip-version-check --target "${qt_temp}" -r "${ROOT}/station/requirements-qt.txt"; then
rm -rf "${qt_temp}"
echo "[Qt] 界面依赖安装失败,请检查网络后重新启动。" >&2
return 1
fi
rm -rf "${qt_dir}"
mv "${qt_temp}" "${qt_dir}"
fi
export PYTHONPATH="${qt_dir}${PYTHONPATH:+:${PYTHONPATH}}"
# 避免继承 OpenCV 等组件设置的其他 Qt 版本插件目录。
unset QT_PLUGIN_PATH QT_QPA_PLATFORM_PLUGIN_PATH
}