fix: 修复模型加载时机问题,在配置加载后才加载模型

Application 构造函数中调用 loadGlobalModel() 时,配置文件
尚未加载,导致模型路径始终为空。改为将 loadGlobalModel() 设为
公开方法,在 main() 中配置加载和命令行参数处理完成后显式调用。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Alvin Young 2026-05-13 14:36:59 +08:00
parent 6f55ec5780
commit 33ae22ce62
3 changed files with 6 additions and 5 deletions

View File

@ -29,9 +29,6 @@ Application::Application(int& argc, char** argv)
LOG_ERROR(kTag, QString("全局模型加载失败: %1").arg(err));
emit modelLoadError(err);
});
// 异步加载全局模型
loadGlobalModel();
}
Application::~Application() {

View File

@ -32,6 +32,9 @@ public:
/** @brief 获取全局 STT 引擎加载状态 */
bool isModelLoaded() const;
/** @brief 加载全局模型(在配置加载后手动调用) */
void loadGlobalModel();
signals:
/** @brief 模型加载中(带路径) */
void modelLoading(const QString& modelPath);
@ -43,8 +46,6 @@ signals:
void modelLoadError(const QString& error);
private:
void loadGlobalModel();
std::unique_ptr<ConfigManager> configManager_;
SenseVoiceEngine* sttEngine_ = nullptr;
QString modelPath_;

View File

@ -56,6 +56,9 @@ int main(int argc, char* argv[])
configManager->set("stt.model_path", modelPath);
}
// 配置加载完成后,启动全局模型加载
app.loadGlobalModel();
// 创建并显示主窗口(传入全局引擎)
impress::MainWindow mainWindow(configManager, app.sttEngine());
mainWindow.show();