Cursor Superpowers 零基础开发 Qt 界面:从技能解析到完整实战全指南
适合人群:Qt 开发新手、Cursor 新用户、想提升 GUI 开发效率的程序员
本文环境:Windows/macOS/Linux 通用、Qt5.15+/Qt6、CMake、Git、最新版 Cursor
哈喽,各位刚接触 Cursor 和 Qt 开发的小伙伴!
很多新手朋友刚用上 Cursor 的 Superpowers 插件,看着一堆技能不知道干嘛用,想开发 Qt 界面又不知道怎么把这些技能落地,踩了一堆坑。
这篇博客就从零开始,先给大家讲明白每个 Superpowers 技能到底是干嘛的、什么时候用,再带大家完整走一遍「Qt 登录界面开发」全流程,全程跟着操作就能跑通,零基础也能上手!
一、先搞懂!Cursor Superpowers 全技能解析(新手友好版)
Superpowers 内置 14 个核心技能,我把它分成了4大类,用大白话讲清楚作用和使用时机,新手不用死记硬背,收藏起来随用随查就行。
核心技能总表
| 技能分类 | 技能名称 | 大白话作用 | 新手必用触发时机 |
|---|---|---|---|
| 开发流程类(核心必用) | brainstorming | 需求拆解&方案设计,把你模糊的想法(比如"我要做个登录界面")梳理成2-3种可落地的方案,避免上来写代码走弯路 | 任何开发前,只要你有个想法还没落地,第一个就用它 |
| writing-plans | 把大项目拆成「2-5分钟就能做完」的小任务,明确每一步要改的文件、执行的命令、要达到的效果,新手再也不会无从下手 | 方案确认后,动手写代码前必用 | |
| subagent-driven-development | 给每个小任务派一个专属"子代理",自动完成「写代码→测试→Git提交→自审」全流程,解放双手 | 有了明确的实现计划后,用它自动执行开发 | |
| executing-plans | 分批执行你写好的计划,每执行完一批就给你报告结果,可控性拉满 | 已有现成的实现计划,需要分步执行时用 | |
| test-driven-development (TDD) | 严格遵循「先写失败的测试用例→写最小实现代码→重构优化」的流程,从源头减少bug | 实现任何功能、修复bug前,写业务代码前用 | |
| 调试与质量类(避坑必备) | systematic-debugging | 按「根因调查→模式分析→假设验证→修复实现」四步定位bug,新手也能像资深工程师一样排查问题 | 遇到任何报错、测试失败、功能异常时用 |
| verification-before-completion | 自动执行编译、测试命令,把完整运行结果展示给你,没有实锤绝不瞎吹"功能完成了" | 声称开发完成、bug修复前,必用它做最终验证 | |
| requesting-code-review | 自动发起代码评审,相当于免费请了个资深工程师帮你查bug、提优化建议,新手快速提升代码水平 | 完成核心功能、合并代码前用 | |
| receiving-code-review | 自动验证评审意见的合理性,逐项帮你实现优化并单独测试 | 收到代码评审反馈后用 | |
| 协作与隔离类(防崩神器) | using-git-worktrees | 创建一个和主分支完全隔离的"沙盘工作区",你在里面随便改代码,写崩了也不影响主项目,新手再也不怕改不回去 | 开始新功能开发、执行实现计划前必用 |
| dispatching-parallel-agents | 给多个互不影响的任务并行派代理,同时开发多个模块,效率翻倍 | 有2个以上独立的开发任务,没有顺序依赖时用 | |
| finishing-a-development-branch | 功能验证通过后,给你清晰的4个选项:本地合并、创建PR、保持现状、丢弃分支,不用自己敲复杂Git命令 | 开发完成,要处理代码合并时用 | |
| 元技能 | using-superpowers | 技能优先检查原则,只要有1%的可能相关,就先调用对应技能,保证流程规范 | 新会话打开时自动触发,不用手动操作 |
| writing-skills | 自定义专属技能,比如固化团队代码规范、自动打包发布流程等 | 现有技能满足不了你的个性化需求时用 |
二、实战!用 Superpowers 完整开发 Qt 登录界面
我们以最常用的Qt登录界面为例,带大家完整走一遍Superpowers的全流程开发,全程跟着操作就能跑出可运行的程序。
2.1 前置准备(必做!不做会踩坑)
-
安装 Superpowers 插件
打开 Cursor,按
Ctrl+L(Windows/Linux)/Cmd+L(macOS)打开聊天框,输入以下命令回车,等待安装成功提示:/plugin-add superpowers -
环境准备
确保你的电脑已经安装:
- Qt 5.15+ / Qt6
- CMake 3.16+
- Git
并且已经配置好对应的环境变量(新手可以搜对应系统的Qt环境配置教程,5分钟就能搞定)。
-
初始化项目与Git仓库
新建一个空文件夹(比如命名为
QtLoginDemo),在文件夹内打开终端,依次执行以下命令:bash# 初始化Git仓库(Superpowers很多技能依赖Git,必须做!) git init # 配置忽略文件,避免编译产物、临时文件提交到Git echo "build/" >> .gitignore echo ".worktrees/" >> .gitignore echo "*.user" >> .gitignore # 提交初始版本 git add . && git commit -m "Initial commit: 初始化Qt登录项目"新手注意:这一步必须做!不初始化Git仓库,worktree、代码评审等核心技能都会报错。
2.2 步骤1:需求澄清与方案设计(brainstorming 技能)
很多新手上来就写代码,写一半发现需求不对、方案选错了,白忙活半天。brainstorming 技能就是帮你先把需求理清楚,定好最优方案再动手。
操作方法
-
在 Cursor 中打开刚才创建的
QtLoginDemo文件夹 -
打开聊天框,输入
/brainstorm触发技能,然后附上你的需求:我想开发一个Qt登录界面,需要包含用户名输入框、密码输入框、登录按钮、登录状态提示标签;本地模拟登录验证即可,正确账号密码是admin/123456;用Qt原生风格,适配Windows和Linux系统 -
技能会自动帮你澄清细节、给出2-3种实现方案,这里我们推荐新手用Qt Designer + ui文件的方案(可视化布局,后续修改方便),回复AI"批准这个方案"即可。
-
技能会自动把最终的设计方案保存到
docs/plans/2026-xx-xx-login-design.md,并提交到Git,全程不用你手动操作。
2.3 步骤2:拆分任务,编写实现计划(writing-plans 技能)
方案定好了,不要直接写代码!writing-plans 技能会帮你把大项目拆成一个个2-5分钟就能做完的小任务,新手跟着走就行,完全不会无从下手。
操作方法
方案确认后,AI会自动触发这个技能,你也可以手动输入 /write-plan 触发。
技能会自动生成完整的实现计划,保存到 docs/plans/2026-xx-xx-login-implementation.md,内容如下:
markdown
# Qt登录界面实现计划
## 任务列表(每步2-5分钟可完成)
1. 创建 CMakeLists.txt 项目配置文件,配置Qt依赖和编译规则
2. 创建 main.cpp 程序入口文件,初始化Qt应用和主窗口
3. 用Qt Designer创建 login.ui 界面布局文件,添加所需控件
4. 创建 Login.h 和 Login.cpp,实现登录窗口的逻辑代码
5. 实现登录验证逻辑,关联按钮点击信号与槽函数
6. 基于Qt Test编写单元测试,验证登录逻辑的正确性
7. 编译项目并运行,验证界面功能和交互效果
2.4 步骤3:创建隔离开发环境(using-git-worktrees 技能)
新手改代码最容易踩的坑:改着改着把项目改崩了,想回滚都回不去。using-git-worktrees 技能会帮你创建一个和主分支完全隔离的"沙盘工作区",你在里面随便改,写崩了也不影响主项目,安全感拉满。
操作方法
实现计划生成后,AI会自动触发这个技能,自动完成以下操作:
- 创建
.worktrees隔离目录(已经配置到.gitignore,不会提交到Git) - 创建新的开发分支
feature/login - 把分支映射到隔离工作区,全程不用你敲一行Git命令。
新手大白话解释:相当于给你的项目复制了一个独立的副本,你在副本里开发,没问题了再合并到原项目里,完全不怕改崩。
2.5 步骤4:自动执行开发任务(subagent-driven-development 技能)
这是最爽的一步!subagent-driven-development 技能会给计划里的每个小任务,派发一个专属的子代理,自动帮你写代码、提交Git,每一步都给你报告进度,全程不用你动手。
下面是子代理自动生成的完整代码,新手可以直接对照查看:
任务1:创建 CMakeLists.txt 项目配置
cmake
cmake_minimum_required(VERSION 3.16)
project(LoginDemo)
# 配置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Qt核心配置(自动处理MOC、UIC、RCC)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
# 查找Qt依赖(Qt6把Widgets合并到Core里了,这里兼容Qt5/Qt6)
find_package(Qt5 REQUIRED COMPONENTS Widgets Test)
# 用Qt6的小伙伴,把上面一行换成下面这行即可
# find_package(Qt6 REQUIRED COMPONENTS Widgets Test)
# 生成主程序
add_executable(LoginDemo
main.cpp
Login.cpp
Login.h
login.ui
)
# 链接Qt库
target_link_libraries(LoginDemo Qt5::Widgets)
# Qt6换成:target_link_libraries(LoginDemo Qt6::Widgets)
# 生成单元测试程序
add_executable(LoginTest
LoginTest.cpp
Login.cpp
Login.h
login.ui
)
target_link_libraries(LoginTest Qt5::Test Qt5::Widgets)
# Qt6换成:target_link_libraries(LoginTest Qt6::Test Qt6::Widgets)
任务2:创建 main.cpp 程序入口
cpp
#include "Login.h"
#include <QApplication>
int main(int argc, char *argv[])
{
// 初始化Qt应用
QApplication a(argc, argv);
// 创建登录窗口
Login w;
// 显示窗口
w.show();
// 进入应用事件循环
return a.exec();
}
任务3:创建 login.ui 界面布局文件
新手技巧:在Cursor中右键.ui文件,选择「Open with Qt Designer」,可以可视化拖拽修改界面,不用手写XML。
xml
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Login</class>
<widget class="QWidget" name="Login">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>320</width>
<height>220</height>
</rect>
</property>
<property name="windowTitle">
<string>用户登录</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLineEdit" name="usernameEdit">
<property name="placeholderText">
<string>请输入用户名</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="passwordEdit">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>请输入密码</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="loginButton">
<property name="text">
<string>登录</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="statusLabel">
<property name="text">
<string>请输入账号密码</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
任务4:创建 Login.h 头文件
cpp
#ifndef LOGIN_H
#define LOGIN_H
#include <QWidget>
// 前置声明ui类
QT_BEGIN_NAMESPACE
namespace Ui { class Login; }
QT_END_NAMESPACE
class Login : public QWidget
{
Q_OBJECT
public:
Login(QWidget *parent = nullptr);
~Login();
// 槽函数声明
private slots:
// 登录按钮点击的处理函数
void onLoginClicked();
private:
// ui对象指针
Ui::Login *ui;
};
#endif // LOGIN_H
任务5:创建 Login.cpp 逻辑实现
cpp
#include "Login.h"
#include "ui_Login.h"
#include <QMessageBox>
Login::Login(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Login)
{
// 加载ui布局
ui->setupUi(this);
// 关联按钮点击信号和槽函数
connect(ui->loginButton, &QPushButton::clicked, this, &Login::onLoginClicked);
}
Login::~Login()
{
// 释放ui对象
delete ui;
}
// 登录按钮点击处理逻辑
void Login::onLoginClicked()
{
// 获取输入框内容
QString username = ui->usernameEdit->text().trimmed();
QString password = ui->passwordEdit->text().trimmed();
// 本地模拟登录验证
if (username == "admin" && password == "123456") {
// 登录成功
ui->statusLabel->setText("登录成功!");
// 清空输入框
ui->usernameEdit->clear();
ui->passwordEdit->clear();
// 弹出成功提示
QMessageBox::information(this, "登录成功", "欢迎您,管理员!");
} else {
// 登录失败
ui->statusLabel->setText("登录失败,用户名或密码错误!");
// 弹出错误提示
QMessageBox::warning(this, "登录失败", "用户名或密码错误,请重新输入!");
}
}
任务6:编写单元测试(TDD 技能)
test-driven-development 技能会自动帮你生成单元测试,验证登录逻辑是否正确,新手也能轻松学会写测试用例。
cpp
#include <QtTest>
#include "Login.h"
#include "ui_Login.h"
class LoginTest : public QObject
{
Q_OBJECT
private slots:
// 测试登录成功的场景
void testLoginSuccess();
// 测试登录失败的场景
void testLoginFailure();
};
void LoginTest::testLoginSuccess()
{
Login login;
// 输入正确的账号密码
login.ui->usernameEdit->setText("admin");
login.ui->passwordEdit->setText("123456");
// 模拟点击登录按钮
QMetaObject::invokeMethod(&login, "onLoginClicked", Qt::DirectConnection);
// 验证状态标签是否正确
QCOMPARE(login.ui->statusLabel->text(), QString("登录成功!"));
}
void LoginTest::testLoginFailure()
{
Login login;
// 输入错误的账号密码
login.ui->usernameEdit->setText("wrongUser");
login.ui->passwordEdit->setText("wrongPass");
// 模拟点击登录按钮
QMetaObject::invokeMethod(&login, "onLoginClicked", Qt::DirectConnection);
// 验证状态标签是否正确
QCOMPARE(login.ui->statusLabel->text(), QString("登录失败,用户名或密码错误!"));
}
// 测试程序入口
QTEST_MAIN(LoginTest)
#include "LoginTest.moc"
每完成一个任务,子代理都会自动执行 git add 和 git commit,每一步都有迹可循,新手完全不怕写乱了。
2.6 步骤6:完成前最终验证(verification-before-completion 技能)
代码写完了,不能直接说"完成了"!verification-before-completion 技能会自动帮你编译项目、运行测试,把完整的运行结果展示给你,确保代码能正常跑通,没有隐藏的坑。
自动执行的验证命令
bash
# 创建编译目录
mkdir -p build && cd build
# 生成编译配置
cmake ..
# 编译项目
make -j4
# 运行单元测试
./LoginTest
正常的测试输出结果
********* Start testing of LoginTest *********
Config: Using QtTest library 5.15.0, Qt 5.15.0
PASS : LoginTest::initTestCase()
PASS : LoginTest::testLoginSuccess()
PASS : LoginTest::testLoginFailure()
PASS : LoginTest::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped, 0 blacklisted, 15ms
********* Finished testing of LoginTest *********
看到全是 PASS,就说明你的代码完全没问题了!
2.7 步骤7:自动代码评审(requesting-code-review 技能)
验证通过后,requesting-code-review 技能会自动发起代码评审,相当于免费请了个资深Qt工程师帮你查代码,给你提优化建议,新手能快速提升代码水平。
示例评审反馈
- 优化建议:可以给密码输入框添加回车触发登录的功能,提升用户体验
- 无严重bug、无安全问题
自动优化后的代码
在 Login.cpp 的构造函数中添加一行代码,实现回车登录:
cpp
Login::Login(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Login)
{
ui->setupUi(this);
connect(ui->loginButton, &QPushButton::clicked, this, &Login::onLoginClicked);
// 新增:密码输入框按回车触发登录
connect(ui->passwordEdit, &QLineEdit::returnPressed, this, &Login::onLoginClicked);
}
优化完成后,会自动提交Git,再次执行验证,确保优化没有引入新bug。
2.8 步骤8:合并代码,完成开发(finishing-a-development-branch 技能)
所有流程都走完了,finishing-a-development-branch 技能会给你4个清晰的选项,新手不用自己敲复杂的Git命令:
- 本地合并回 main 主分支
- 推送到远程仓库,创建 Pull Request
- 保持分支现状,稍后自行处理
- 丢弃本次开发的内容
我们选择「本地合并回主分支」,技能会自动帮你完成合并、清理隔离工作区、删除临时分支,全程一键完成。
三、新手必看!常见踩坑&避坑指南
-
报错:CMake 找不到 Qt
解决方法:确保Qt的环境变量配置正确,Windows需要把Qt的bin目录加到PATH,Linux/macOS需要设置
CMAKE_PREFIX_PATH为Qt的安装路径。 -
Superpowers 技能触发没反应
解决方法:先确认插件安装成功,重启Cursor;必须在初始化了Git的项目文件夹中打开Cursor,否则技能无法正常工作。
-
ui文件编译报错,找不到 ui_Login.h
解决方法:确保CMakeLists.txt中开启了
CMAKE_AUTOUIC ON,并且把login.ui加到了add_executable的源文件列表里。 -
Git worktree 权限报错
解决方法:关闭所有正在占用项目文件夹的程序(比如终端、资源管理器、其他IDE),再重新执行技能。
四、总结&进阶拓展
总结
我们用 Cursor Superpowers 的全流程技能,从需求澄清到最终合并,完整开发了一个可运行的Qt登录界面。整个流程规范、可控,新手跟着操作就能跑通,完全不用怕无从下手、写崩项目。
进阶拓展
- 可以用这个流程开发更复杂的Qt界面,比如带菜单栏的主窗口、多页面切换、表格数据展示等
- 可以结合
dispatching-parallel-agents技能,并行开发Qt的多个模块,大幅提升开发效率 - 可以用
writing-skills技能,自定义Qt项目的自动打包、发布技能,一键生成安装包
如果你跟着操作遇到了问题,欢迎在评论区留言,我会一一解答!