fix: 修复模型加载时机问题,在配置加载后才加载模型
Application 构造函数中调用 loadGlobalModel() 时,配置文件 尚未加载,导致模型路径始终为空。改为将 loadGlobalModel() 设为 公开方法,在 main() 中配置加载和命令行参数处理完成后显式调用。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
6f55ec5780
commit
33ae22ce62
@ -29,9 +29,6 @@ Application::Application(int& argc, char** argv)
|
|||||||
LOG_ERROR(kTag, QString("全局模型加载失败: %1").arg(err));
|
LOG_ERROR(kTag, QString("全局模型加载失败: %1").arg(err));
|
||||||
emit modelLoadError(err);
|
emit modelLoadError(err);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 异步加载全局模型
|
|
||||||
loadGlobalModel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Application::~Application() {
|
Application::~Application() {
|
||||||
|
|||||||
@ -32,6 +32,9 @@ public:
|
|||||||
/** @brief 获取全局 STT 引擎加载状态 */
|
/** @brief 获取全局 STT 引擎加载状态 */
|
||||||
bool isModelLoaded() const;
|
bool isModelLoaded() const;
|
||||||
|
|
||||||
|
/** @brief 加载全局模型(在配置加载后手动调用) */
|
||||||
|
void loadGlobalModel();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
/** @brief 模型加载中(带路径) */
|
/** @brief 模型加载中(带路径) */
|
||||||
void modelLoading(const QString& modelPath);
|
void modelLoading(const QString& modelPath);
|
||||||
@ -43,8 +46,6 @@ signals:
|
|||||||
void modelLoadError(const QString& error);
|
void modelLoadError(const QString& error);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadGlobalModel();
|
|
||||||
|
|
||||||
std::unique_ptr<ConfigManager> configManager_;
|
std::unique_ptr<ConfigManager> configManager_;
|
||||||
SenseVoiceEngine* sttEngine_ = nullptr;
|
SenseVoiceEngine* sttEngine_ = nullptr;
|
||||||
QString modelPath_;
|
QString modelPath_;
|
||||||
|
|||||||
@ -56,6 +56,9 @@ int main(int argc, char* argv[])
|
|||||||
configManager->set("stt.model_path", modelPath);
|
configManager->set("stt.model_path", modelPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 配置加载完成后,启动全局模型加载
|
||||||
|
app.loadGlobalModel();
|
||||||
|
|
||||||
// 创建并显示主窗口(传入全局引擎)
|
// 创建并显示主窗口(传入全局引擎)
|
||||||
impress::MainWindow mainWindow(configManager, app.sttEngine());
|
impress::MainWindow mainWindow(configManager, app.sttEngine());
|
||||||
mainWindow.show();
|
mainWindow.show();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user