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
+46
View File
@@ -0,0 +1,46 @@
#ifndef PLUGINMANAGERDIALOG_H
#define PLUGINMANAGERDIALOG_H
#include <QDialog>
#include <QTreeWidget>
#include <QPushButton>
#include <QLabel>
class ExtensionHost;
class PluginImporter;
class ContributionRegistry;
class PluginManagerDialog : public QDialog
{
Q_OBJECT
public:
explicit PluginManagerDialog(ExtensionHost *extHost,
ContributionRegistry *contribReg,
QWidget *parent = nullptr);
~PluginManagerDialog() override = default;
void refreshPluginList();
private slots:
void onActivatePlugin();
void onDeactivatePlugin();
void onImportPlugin();
void onRefresh();
private:
void setupUi();
void updateButtonStates();
ExtensionHost *m_extHost;
ContributionRegistry *m_contribReg;
PluginImporter *m_importer;
QTreeWidget *m_treeWidget;
QPushButton *m_activateBtn;
QPushButton *m_deactivateBtn;
QPushButton *m_importBtn;
QPushButton *m_refreshBtn;
QLabel *m_statusLabel;
};
#endif