From a480788f1096c370dd4409e0a28fe7c1cedce993 Mon Sep 17 00:00:00 2001 From: Klein Date: Wed, 25 Feb 2026 04:08:00 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20share?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- share | 313 +--------------------------------------------------------- 1 file changed, 1 insertion(+), 312 deletions(-) diff --git a/share b/share index 84f9c5b..d936b19 100644 --- a/share +++ b/share @@ -1,312 +1 @@ -Host 121.196.200.148 - HostName 121.196.200.148 - Port 2222 - User git - IdentityFile C:\Users\Klein\.ssh\id_rsa_kylin_Klein - -在将 `ku2d-hmi` 转化为 Qt 工程的过程中,第一步“环境搭建与 CMake 改造”决定了后续开发的底层逻辑。其核心目标是:**在保留原有业务逻辑编译能力的基础上,引入 Qt 的构建套件。** - -以下是该阶段的大方向实施步骤: - ---- - -### 1. 开发环境基准对齐 - -在进行代码改动前,必须确保编译器与 Qt 库的版本兼容。 - -* **编译器确认**:根据 Qt 版本选择合适的 C++ 标准(Qt 6 建议使用 C++17 或更高)。 -* **Qt 插件安装**:安装 Qt 本身及其对应的构建工具(如 Ninja 或 Make)。 -* **IDE 准备**:配置 VS Code (配合 CMake 插件) 或 Qt Creator,使其能够正确识别项目的 `CMakeLists.txt`。 - ---- - -### 2. 核心逻辑的“库化”分离 - -为了不破坏原有的业务逻辑,需在构建层面将“计算逻辑”与“界面展示”解耦。 - -* **创建 Core 静态库**:修改 `src/CMakeLists.txt`,将 `protocol`, `business`, `infra`, `transport` 等非 UI 目录打包成一个名为 `ku2d_core` 的静态库。 -* **清理依赖关系**:确保 `ku2d_core` 仅依赖 Protobuf、YAML-CPP 等基础库,而不依赖任何 Qt 组件。 - ---- - -### 3. 根目录 CMake 配置“Qt 化” - -在顶级 `CMakeLists.txt` 中注入 Qt 的生命周期管理逻辑。 - - - -* **声明 Qt 依赖**:使用 `find_package` 指令显式引入 `Qt6` 的 `Core`, `Widgets`, `Gui` 模块。 -* **开启自动处理机制**: -* `set(CMAKE_AUTOMOC ON)`:处理 Qt 信号槽宏。 -* `set(CMAKE_AUTOUIC ON)`:处理 `.ui` 界面文件。 -* `set(CMAKE_AUTORCC ON)`:处理图标等资源文件。 - - - ---- - -### 4. 创建 Qt 专用可执行程序目标 - -在 `src/app` 或新建的 UI 目录中,定义新的构建目标。 - -* **定义可执行文件**:创建一个新的编译目标(如 `ku2d-gui`),将其源文件指向新的 Qt `main.cpp` 和 UI 类。 -* **执行目标链接**:将该目标与 `ku2d_core` 库以及 `Qt6::Widgets` 等库进行链接(Target Link Libraries)。 - ---- - -### 5. 入口函数重定向 - -将程序的控制权从原有的 C++ 循环移交给 Qt 事件循环。 - -* **主入口切换**:废弃原有的 `src/main.cpp` 启动逻辑,编写符合 Qt 规范的 `QApplication` 启动代码。 -* **后台线程初始化**:在 Qt 启动前,确保原有的后端 `Coordinator` 能在非主线程中正确初始化。 - ---- - -### 6. 环境冒烟测试 - -验证构建系统是否闭环。 - -* **编译验证**:尝试执行 CMake Configure 和 Build,确保没有因库冲突导致的链接错误。 -* **空窗运行**:启动程序,若能成功弹出一个空白的 `QMainWindow` 且后台日志正常滚动,则表示第一步环境搭建完成。 - - -{ - // ==================== [ 核心功能与安全 ] ==================== - // 文件自动保存 - 延迟后自动保存 - "files.autoSave": "afterDelay", - // 自动检测文件编码 - "files.autoGuessEncoding": true, - // 保存时删除行尾空格 - "files.trimTrailingWhitespace": true, - // 文件末尾插入最终换行符 - "files.insertFinalNewline": true, - // 删除文件末尾多余换行符 - "files.trimFinalNewlines": true, - // ==================== [ 代码格式化与缩进 (强制 4 空格) ] ==================== - // 强制使用空格进行缩进 - "editor.insertSpaces": true, - // 强制设置缩进宽度为 4 个空格 - "editor.tabSize": 4, - // 禁用自动检测,以确保 4 个空格的全局设置覆盖所有文件 (从 true 修正为 false,以确保强制执行) - "editor.detectIndentation": true, - // 启用保存时自动格式化 - "editor.formatOnSave": true, - // ==================== [ 编辑器可视化与人体工学优化 ] ==================== - // **字体系列:** 整合新设置,并保留中文字体后备 - "editor.fontFamily": "JetBrains Mono", - // 字体大小 (统一为 18) - "editor.fontSize": 16, - // 行高 (来自新设置,提升可读性) - "editor.lineHeight": 26, - // 字间距 (来自新设置,缓解视觉疲劳) - "editor.letterSpacing": 0.7, - // 启用字体连字 (来自笔记本设置) - "editor.fontLigatures": true, - // 显示空格/制表符边界:设置为 all 以便查看 4 个点表示一个制表符 - "editor.renderWhitespace": "all", - // 启用缩进引导线(即制表位上的竖线) - "editor.guides.indentation": true, - // 行状光标更容易定位 (来自新设置) - "editor.cursorStyle": "line", - // 平滑闪烁,减少视觉疲劳 (来自新设置) - "editor.cursorBlinking": "smooth", - // 平滑滚动 (来自新设置) - "editor.smoothScrolling": true, - // 高亮活动括号对 (来自新设置) - "editor.guides.bracketPairs": "active", - // 显示标尺线 - "editor.rulers": [ - 100, - 120 - ], - // 禁用自动换行 - "editor.wordWrap": "off", - // 启用 Tab 补全 - "editor.tabCompletion": "on", - // 启用内联建议 - "editor.inlineSuggest.enabled": true, - // ==================== [ 工作台与界面 ] ==================== - // 禁用预览模式 (来自笔记本设置) - "workbench.editor.enablePreview": true, - // 快速打开时禁用预览 - "workbench.editor.enablePreviewFromQuickOpen": false, - // 始终显示缩略图滑块 (来自笔记本设置) - "editor.minimap.showSlider": "always", - // 只显示单个标签页 - "workbench.editor.showTabs": "multiple", - // 隐藏空编辑器提示 - "workbench.editor.empty.hint": "hidden", - // 颜色主题:默认采用新设置的 Monokai,如果喜欢 Dracular 请自行修改 - "workbench.colorTheme": "Monokai", - // 启动时不打开编辑器 - "workbench.startupEditor": "none", - // 文件图标主题 - "workbench.iconTheme": "vs-seti", - // 文件树缩进 - "workbench.tree.indent": 24, - // 文件树渲染缩进引导线 - "workbench.tree.renderIndentGuides": "always", - // ==================== [ 终端配置 ] ==================== - // 终端字体系列 (来自新设置) - "terminal.integrated.fontFamily": "Consolas", - // 终端字体大小 (统一为 16) - "terminal.integrated.fontSize": 16, - // 终端行高 (来自新设置) - "terminal.integrated.lineHeight": 1.4, - // 终端平滑滚动 (来自笔记本设置) - "terminal.integrated.smoothScrolling": true, - // 终端光标样式 - "terminal.integrated.cursorStyle": "line", - // 选择时自动复制 (来自笔记本设置) - "terminal.integrated.copyOnSelection": true, - // 右键粘贴 (来自笔记本设置) - "terminal.integrated.rightClickBehavior": "paste", - // 终端配置文件(保留 Windows 特定配置) - "terminal.integrated.profiles.windows": { - "PowerShell": { - "source": "PowerShell", - "icon": "terminal-powershell" - }, - "Command Prompt": { - "path": [ - "${env:windir}\\Sysnative\\cmd.exe", - "${env:windir}\\System32\\cmd.exe" - ], - "args": [], - "icon": "terminal-cmd" - }, - "Git Bash": { - "source": "Git Bash" - }, - // 保留 PowerShell 7 路径,但建议使用 'source' - "PowerShell 7 (pwsh)": { - "path": "D:\\Software\\PowerShell\\7\\pwsh.exe", - "args": [] - } - }, - // ==================== [ 扩展与 AI 助手 ] ==================== - // Copilot 启用状态 (保留笔记本设置) - "github.copilot.enable": { - "*": true, - "plaintext": false, - "markdown": true, - "scminput": false, - "c": true, - "cpp": true - }, - "github.copilot.chat.codesearch.enabled": true, - "github.copilot.nextEditSuggestions.enabled": true, - // DeepSeek 语言设置 (保留,但密钥和 URL 已移除) - "deepseek.lang": "cn", - // Emmet 启用 Tab 展开 (保留) - "emmet.triggerExpansionOnTab": true, - // ==================== [ 性能与杂项优化 ] ==================== - // 文件资源管理器不确认删除/拖放 - "explorer.confirmDelete": false, - "explorer.confirmDragAndDrop": false, - "explorer.confirmPasteNative": false, - // Git 自动拉取 - "git.autofetch": true, - // ==================== [ 语言特定设置 ] ==================== - "[json]": { - "editor.defaultFormatter": "vscode.json-language-features", - "editor.formatOnSave": true - }, - "[jsonc]": { - "editor.defaultFormatter": "vscode.json-language-features", - "editor.formatOnSave": true - }, - "[javascript]": { - "editor.defaultFormatter": "vscode.typescript-language-features", - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.organizeImports": "explicit" - } - }, - "[typescript]": { - "editor.defaultFormatter": "vscode.typescript-language-features", - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.organizeImports": "explicit" - } - }, - "[html]": { - "editor.defaultFormatter": "vscode.html-language-features", - "editor.formatOnSave": true - }, - "[css]": { - "editor.defaultFormatter": "vscode.css-language-features", - "editor.formatOnSave": true - }, - "[markdown]": { - "editor.defaultFormatter": "yzhang.markdown-all-in-one", - "editor.formatOnSave": false - }, - "markdown-preview-enhanced.previewTheme": "github-light.css", - "geminicodeassist.project": "peta-tea-jrc5w", - "chat.tools.terminal.autoApprove": { - "git add": true, - "/^Get-Command ninja -ErrorAction SilentlyContinue \\| Format-List; Get-Command cl -ErrorAction SilentlyContinue \\| Format-List; Get-Command nvcc -ErrorAction SilentlyContinue \\| Format-List$/": { - "approve": true, - "matchCommandLine": true - }, - "docker build": true - }, - "[cpp]": { - "files.encoding": "utf8bom" - }, - "[c]": { - "files.encoding": "utf8bom" - }, - "[h]": { - "files.encoding": "utf8bom" - }, - "terminal.integrated.shellArgs.windows": [ - "/k", - "chcp 65001" - ], - "powershell.promptToUpdatePowerShell": false, - "jdk.telemetry.enabled": true, - "gitlens.ai.model": "vscode", - "gitlens.ai.vscode.model": "copilot:gpt-5-mini", - "security.workspace.trust.untrustedFiles": "open", - "remote.SSH.remotePlatform": { - "aliyun-dev-host": "linux", - "home-dev-server": "linux" - }, - "Lingma.aI Chat.commandAllowlistInAgentMode": "", - "http.proxy": "http://127.0.0.1:7897", - "makefile.configureOnOpen": true, - "cmake.showOptionsMovedNotification": false, - "cmake.pinnedCommands": [ - "workbench.action.tasks.configureTaskRunner", - "workbench.action.tasks.runTask" - ], - "terminal.integrated.enableMultiLinePasteWarning": "auto", - "cmake.configureOnOpen": false, - "git.confirmSync": false, - "python.analysis.typeCheckingMode": "standard", - "diffEditor.codeLens": true, - "gopls": {}, - "workbench.settings.applyToAllProfiles": [], - "chat.agent.maxRequests": 100, - "go.testTags": "integration", - "editor.codeActionsOnSave": {}, - "roo-cline.allowedCommands": [ - "git log", - "git diff", - "git show" - ], - "roo-cline.deniedCommands": [], - "http.systemCertificatesNode": true, - "geminicodeassist.inlineSuggestions.enableAuto": false, - "Lingma.aI Chat.webToolsInAsk/AgentMode": "Ask every time", - "workbench.secondarySideBar.showLabels": false, - "git.openRepositoryInParentFolders": "never", - "markdown-preview-enhanced.codeBlockTheme": "vue.css", - "window.customTitleBarVisibility": "windowed", - "chatgpt.localeOverride": "zh-CN", - "chatgpt.runCodexInWindowsSubsystemForLinux": false, - "chat.viewSessions.orientation": "stacked", -} +账号:tuoneyming丨密码:jmXFyqolCDBM9zkZ丨验证密钥:W3TCAFBVH52Q4JNR \ No newline at end of file