fix: 修复启动白屏与地图崩溃问题

- SetUseOpenGL(false): QGLWidget 在当前系统不兼容,改用软件渲染
- ExtensionHost_v2: 添加 contributionRegistry() getter 修复空指针
- main.cpp: 两阶段启动 (show → QTimer::singleShot → initialize)
- mainwindow: 分离构造函数与 initialize(),结尾调用 onTabIndexChanged(3)
- 修复 Qt DLL 部署:使用 windeployqt 确保运行时库版本匹配
This commit is contained in:
2026-06-02 19:01:24 +08:00
parent 94fcdb12e0
commit 61cd75cd56
39 changed files with 2994 additions and 1258 deletions
+13 -2
View File
@@ -9,8 +9,8 @@
#include "mavlink_types.h"
// ============================================================
// 服务接口体系(纯虚接口,不继承QObject,避免菱形继承)
// 插件通过 ServiceRegistry 发现服务
// 服务接口体系(纯虚接口,不继承QObject,避免菱形继承)
// 插件通过 ServiceRegistry 发现服务
// ============================================================
class IDataProvider
@@ -18,6 +18,10 @@ class IDataProvider
public:
virtual ~IDataProvider() = default;
virtual QString serviceId() const = 0;
virtual void requestSystemStatus() = 0;
virtual void requestAllParams() = 0;
virtual void setUpdateInterval(int ms) = 0;
virtual void enableDataStream(bool enabled) = 0;
};
class ILinkProvider
@@ -25,6 +29,10 @@ class ILinkProvider
public:
virtual ~ILinkProvider() = default;
virtual QString serviceId() const = 0;
virtual void connectToVehicle(const QString &port, int baudRate) = 0;
virtual void disconnectFromVehicle() = 0;
virtual bool isLinkConnected() const = 0;
virtual QStringList availablePorts() const = 0;
};
class ICommandProvider
@@ -80,6 +88,9 @@ class ISensorProvider
public:
virtual ~ISensorProvider() = default;
virtual QString serviceId() const = 0;
virtual void enableSensorStream(const QString &sensorName, bool enabled) = 0;
virtual void requestSensorCalibration() = 0;
virtual QVariantMap getSensorHealth() const = 0;
};
class IRCProvider