Cursor + Qt Creator 混合开发指南
Cursor 的优势AI 辅助代码编写,快速生成代码框架智能代码补全和重构支持多文件同时编辑强大的搜索和替换功能Git 集成良好Qt Creator 的优势完整的 Qt 项目管理可视化 UI 设计(.ui 文件)集成编译器和调试器QML 预览和调试信号槽编辑器性能分析工具混合开发的好处利用 Cursor AI 快速编写业务逻辑使用 Qt Creator 编译、运行和调试在 Cursor 中管理代码
·
目录
简介
为什么选择混合开发?
Cursor 的优势:
- AI 辅助代码编写,快速生成代码框架
- 智能代码补全和重构
- 支持多文件同时编辑
- 强大的搜索和替换功能
- Git 集成良好
Qt Creator 的优势:
- 完整的 Qt 项目管理
- 可视化 UI 设计(.ui 文件)
- 集成编译器和调试器
- QML 预览和调试
- 信号槽编辑器
- 性能分析工具
混合开发的好处:
- 利用 Cursor AI 快速编写业务逻辑
- 使用 Qt Creator 编译、运行和调试
- 在 Cursor 中管理代码版本(Git)
- 在 Qt Creator 中查看编译错误和运行日志
- 提高开发效率,减少上下文切换成本
开发环境配置
1. 安装必要软件
Qt 开发环境
1. 下载 Qt 在线安装器
https://www.qt.io/download-qt-installer
2. 安装组件:
- Qt 6.10.1 或更高版本
- MinGW 64-bit 编译器(Windows)
- Qt Creator
- Qt Quick Controls 2
- Qt Network
- Qt SQL
Cursor 编辑器
1. 下载 Cursor
https://cursor.sh/
2. 安装 C++ 扩展(可选)
- C/C++ IntelliSense
- Qt tools
- CMake Tools(如果使用 CMake)
2. 项目配置
在 Qt Creator 中创建项目
1. 文件 → 新建文件或项目
2. 选择项目类型(Qt Widgets Application 或 Qt Quick Application)
3. 选择构建系统(qmake 或 CMake)
4. 配置 Kit(编译器、Qt 版本、调试器)
5. 创建项目
在 Cursor 中打开项目
1. 文件 → 打开文件夹
2. 选择 Qt 项目根目录
3. Cursor 会自动识别 C++ 和 QML 文件
3. 工作区设置
Cursor 配置
// .vscode/settings.json
{
"files.associations": {
"*.qml": "qml",
"*.pro": "makefile",
"*.pri": "makefile"
},
"C_Cpp.default.includePath": [
"${workspaceFolder}/**",
"C:/Qt/6.10.1/mingw_64/include/**"
],
"C_Cpp.default.compilerPath": "C:/Qt/Tools/mingw1120_64/bin/g++.exe"
}
Qt Creator 配置
工具 → 选项:
1. Kits → 确认 Kit 配置正确
2. C++ → Code Style → 选择代码风格
3. Text Editor → 配置字体和主题
4. Build & Run → 检查编译器路径
工作流程
典型开发周期
┌─────────────────────────────────────────────┐
│ 1. 在 Cursor 中编写/修改代码 │
│ - 使用 AI 生成代码框架 │
│ - 编写业务逻辑 │
│ - 重构和优化代码 │
└─────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 2. 保存文件(Ctrl+S) │
│ - Cursor 自动保存 │
│ - Qt Creator 检测到文件变化 │
└─────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 3. 切换到 Qt Creator │
│ - 查看文件是否需要重新加载 │
│ - 点击"重新加载"如果提示 │
└─────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 4. 在 Qt Creator 中编译 │
│ - Build → Build Project │
│ - 或按 Ctrl+B │
│ - 查看编译输出 │
└─────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 5. 检查编译结果 │
│ ├─ 成功 → 继续运行 │
│ └─ 失败 → 回到 Cursor 修复错误 │
└─────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 6. 在 Qt Creator 中运行 │
│ - Run → Run (Ctrl+R) │
│ - 查看应用程序输出 │
│ - 查看调试信息 │
└─────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 7. 测试和调试 │
│ - 如果有 bug → 回到 Cursor 修复 │
│ - 如果需要调试 → 使用 Qt Creator 调试器 │
│ - 功能完成 → 提交 Git(在 Cursor 中) │
└─────────────────────────────────────────────┘
具体操作步骤
步骤 1:代码编写(Cursor)
场景 1:创建新类
// 在 Cursor 中,使用 AI 生成类框架
// 提示词:创建一个名为 UserManager 的类,包含登录、注册功能
// UserManager.h
#ifndef USERMANAGER_H
#define USERMANAGER_H
#include <QObject>
#include <QString>
class UserManager : public QObject
{
Q_OBJECT
public:
explicit UserManager(QObject *parent = nullptr);
Q_INVOKABLE bool login(const QString &username, const QString &password);
Q_INVOKABLE bool registerUser(const QString &username, const QString &password);
signals:
void loginSuccess();
void loginFailed(const QString &error);
private:
// 实现细节
};
#endif
场景 2:修改现有代码
// 在 Cursor 中选中代码,使用 AI 重构
// Ctrl+K → 输入:优化这段代码,添加错误处理
// 修改前
void loadData() {
auto result = database.query("SELECT * FROM users");
processResult(result);
}
// AI 自动优化后
void loadData() {
try {
auto result = database.query("SELECT * FROM users");
if (!result.isEmpty()) {
processResult(result);
} else {
qWarning() << "No data found";
}
} catch (const std::exception &e) {
qCritical() << "Database error:" << e.what();
emit error("Failed to load data");
}
}
步骤 2:编译检查(Qt Creator)
切换到 Qt Creator
Alt+Tab 或 点击任务栏
编译项目
方法 1:菜单
Build → Build Project "ProjectName"
方法 2:快捷键
Ctrl+B
方法 3:工具栏
点击 "锤子" 图标
查看编译输出
窗口底部的 "编译输出" 面板
- 绿色 ✓ = 编译成功
- 红色 ✗ = 编译失败,查看错误信息
步骤 3:错误修复(Cursor)
复制错误信息
在 Qt Creator 编译输出中:
1. 右键点击错误行
2. 复制消息
在 Cursor 中修复
1. 切换回 Cursor
2. 使用 AI 修复:
- Ctrl+K → 粘贴错误信息
- 让 AI 分析并提供解决方案
3. 应用修复
4. 保存文件
步骤 4:运行测试(Qt Creator)
运行应用程序
方法 1:菜单
Run → Run (或 Start Debugging)
方法 2:快捷键
Ctrl+R(运行)
F5(调试运行)
方法 3:工具栏
点击绿色 "播放" 按钮
查看输出
应用程序输出面板:
- 显示 qDebug(), qInfo(), qWarning() 等输出
- 显示程序标准输出
- 显示崩溃信息
步骤 5:调试(Qt Creator)
设置断点
1. 在代码行号左侧点击
2. 红点出现 = 断点已设置
调试运行
F5 或 Debug → Start Debugging
调试操作
F10 = 单步跳过(Step Over)
F11 = 单步进入(Step Into)
Shift+F11 = 跳出(Step Out)
F5 = 继续执行
步骤 6:版本控制(Cursor)
提交代码
1. 在 Cursor 左侧点击 "源代码管理" 图标
2. 查看修改的文件
3. 暂存更改(+)
4. 输入提交消息
5. 提交(✓)
推送到远程
... 菜单 → Push
最佳实践
1. 文件组织
推荐项目结构
ProjectRoot/
├── Common/ # 共享库
│ ├── models/ # 数据模型
│ ├── protocol/ # 通信协议
│ └── constants/ # 常量定义
├── Server/ # 服务器端
│ ├── src/
│ ├── Server.pro
│ └── resources/
├── Client/ # 客户端
│ ├── src/
│ ├── qml/ # QML 文件
│ ├── Client.pro
│ └── resources/
├── docs/ # 文档
├── tests/ # 测试
└── ProjectRoot.pro # 主项目文件
2. 代码编写建议
在 Cursor 中做:
- ✅ 编写业务逻辑代码
- ✅ 重构和优化代码
- ✅ 批量修改多个文件
- ✅ 搜索和替换
- ✅ Git 操作
- ✅ 编写文档
在 Qt Creator 中做:
- ✅ 编译项目
- ✅ 运行和调试
- ✅ 查看编译错误
- ✅ 使用信号槽编辑器
- ✅ QML 预览
- ✅ 性能分析
避免的操作:
- ❌ 不要在 Cursor 中尝试编译 Qt 项目
- ❌ 不要在 Qt Creator 中进行大量代码重构
- ❌ 不要同时在两个编辑器中编辑同一文件
- ❌ 不要忘记保存文件就切换编辑器
3. 工作流优化
快速切换技巧
Windows:
Alt+Tab # 切换应用程序
Win+1, Win+2 # 切换到任务栏固定的应用
快捷键设置:
- Cursor: Win+C
- Qt Creator: Win+Q
文件同步
Cursor 设置:
- 启用自动保存:files.autoSave = "afterDelay"
- 设置延迟:files.autoSaveDelay = 1000
Qt Creator 设置:
- 启用自动重新加载文件
- 工具 → 选项 → 环境 → 系统
- 勾选 "自动重新加载被外部修改的文件"
多显示器布局
推荐布局:
显示器 1: Cursor(主开发)
显示器 2: Qt Creator(编译运行)+ 浏览器(文档)
4. AI 使用技巧
有效的 AI 提示词
✅ 好的提示:
"创建一个 NetworkManager 类,负责 TCP 客户端连接,
包含 connectToServer、disconnect、sendRequest 方法,
使用 Qt 的 QTcpSocket"
❌ 不好的提示:
"写个网络类"
代码审查
选中代码 → Ctrl+K → 输入:
"检查这段代码是否有内存泄漏、线程安全问题"
重构建议
选中代码 → Ctrl+K → 输入:
"重构这段代码,使其更符合 SOLID 原则"
5. 调试技巧
日志输出
// 使用 Qt 的日志系统
#include <QDebug>
qDebug() << "调试信息";
qInfo() << "普通信息";
qWarning() << "警告信息";
qCritical() << "严重错误";
// 格式化输出
qDebug() << "User ID:" << userId << "Name:" << userName;
条件断点
在 Qt Creator 中:
1. 右键点击断点
2. 选择 "编辑断点"
3. 添加条件:userId == 123
4. 只有条件满足时才会暂停
监视变量
调试时:
1. 右键点击变量
2. 选择 "添加表达式求值器"
3. 可以监视复杂表达式
常见问题
问题 1:文件未同步
症状:
- 在 Cursor 中修改了代码
- Qt Creator 中编译的还是旧代码
解决方案:
1. 确认 Cursor 中已保存文件(Ctrl+S)
2. 在 Qt Creator 中手动重新加载:
- Build → Clean All
- 关闭并重新打开 Qt Creator
3. 检查文件时间戳是否更新
问题 2:编译错误
症状:
- Qt Creator 显示大量编译错误
- 代码在 Cursor 中看起来没问题
解决方案:
1. 检查 #include 路径是否正确
2. 确认 .pro 文件配置正确
3. 清理项目:Build → Clean All
4. 重新运行 qmake:Build → Run qmake
5. 重新编译:Build → Rebuild All
问题 3:QML 文件不生效
症状:
- 修改了 QML 文件
- 运行时还是显示旧界面
解决方案:
1. 确认 QML 文件已添加到 .qrc 资源文件
2. 清理项目重新编译
3. 检查 QML 缓存:
删除 C:\Users\<用户>\AppData\Local\Temp\QtQmlCache\
4. 使用 qrc:/ 前缀访问 QML 文件
问题 4:Git 冲突
症状:
- 多人协作时出现文件冲突
- .pro.user 文件冲突
解决方案:
1. 添加 .gitignore:
*.pro.user
*.pro.user.*
build-*/
.qmake.stash
2. 解决冲突:
- 在 Cursor 中使用 Git 工具
- 选择保留的版本
- 手动合并代码
3. 避免冲突:
- 经常 pull 更新
- 及时提交本地更改
- 使用分支开发功能
问题 5:内存泄漏
症状:
- 程序运行一段时间后内存占用持续增长
- 程序崩溃
解决方案:
1. 使用 Qt 对象树管理内存:
- 创建 QObject 时指定 parent
- parent 删除时会自动删除子对象
2. 使用智能指针:
#include <QSharedPointer>
QSharedPointer<MyClass> ptr(new MyClass);
3. 使用 Qt Creator 的性能分析工具:
- Analyze → QML Profiler
- Analyze → Performance Analyzer
4. 检查信号槽连接:
- 对象销毁前断开连接
- 使用 Qt::AutoConnection
项目结构
Qt 项目文件(.pro)
# 基本配置
QT += core gui widgets network sql
CONFIG += c++17
# 目标配置
TARGET = MyApp
TEMPLATE = app
# 头文件
HEADERS += \
src/mainwindow.h \
src/models/user.h
# 源文件
SOURCES += \
src/main.cpp \
src/mainwindow.cpp \
src/models/user.cpp
# UI 文件
FORMS += \
ui/mainwindow.ui
# 资源文件
RESOURCES += \
resources/resources.qrc
# 包含路径
INCLUDEPATH += $$PWD/src
# 链接库
LIBS += -L$$PWD/lib -lMyLib
资源文件(.qrc)
<RCC>
<qresource prefix="/qml">
<file alias="main.qml">../qml/main.qml</file>
<file alias="Theme.qml">../qml/styles/Theme.qml</file>
</qresource>
<qresource prefix="/images">
<file>images/logo.png</file>
</qresource>
</RCC>
在 QML 中使用资源
import QtQuick 2.15
Rectangle {
Image {
source: "qrc:/images/logo.png"
}
}
总结
混合开发的核心原则:
- 明确分工:Cursor 写代码,Qt Creator 编译运行
- 及时保存:切换前务必保存文件
- 善用 AI:让 AI 帮你生成代码框架和修复错误
- 勤于测试:每次修改后都编译测试
- 版本控制:使用 Git 管理代码,及时提交
效率提升建议:
- 使用多显示器,减少窗口切换
- 配置快捷键,提高操作速度
- 熟练掌握两个工具的特性
- 建立稳定的工作流程
- 保持良好的代码组织
学习资源:
- Qt 官方文档:https://doc.qt.io/
- Cursor 文档:https://cursor.sh/docs
- Qt 论坛:https://forum.qt.io/
- Stack Overflow Qt 标签
祝开发顺利!🚀
更多推荐



所有评论(0)