fix(vtk): 改用 GDI 字体引擎绕开 DirectWrite 字体回退崩溃(勾选数据集渲染时 QPushButton sizeHint 触发,见crash dump)

This commit is contained in:
gaozheng 2026-06-16 18:48:29 +08:00
parent e34abd271f
commit 5fe1c298d2
1 changed files with 8 additions and 0 deletions

View File

@ -1251,6 +1251,14 @@ public:
int main(int argc, char* argv[])
{
#ifdef Q_OS_WIN
// Qt6 Windows 的 DirectWrite 字体数据库在本机枚举字体回退(fallbacksForFamily →
// populateFamily)时崩溃(0xc0000005见 logs/crash_*.dmp + geopro_*.log 栈):渲染后一次布局
// 重算 QPushButton sizeHint → 对按钮文字整形 → 主字体(YaHei)缺某字形(如三角符 ◀▶)触发回退 →
// DirectWrite 在本机抛 C++ 异常并最终段错误(登录/面板只用中文+拉丁YaHei 都有,故先前不崩)。
// 改用 GDI 字体引擎绕开有问题的 DirectWrite 回退路径(稳定优先,渲染质量略变)。须在 QApplication 前设置。
qputenv("QT_QPA_PLATFORM", "windows:fontengine=gdi");
#endif
// Qt WebEngine地图页签的 QWebEngineView必须在 QApplication 构造前初始化,
// 且需启用跨上下文共享 OpenGLQtWebEngine 与 QVTK 同进程共用 GL context避免黑屏/崩溃)。
// AA_ShareOpenGLContexts 须在 QApplication 之前设置QtWebEngineQuick::initialize() 同样须前置。