Cursor Superpowers 零基础开发 Qt 界面

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 前置准备(必做!不做会踩坑)

  1. 安装 Superpowers 插件

    打开 Cursor,按 Ctrl+L(Windows/Linux)/ Cmd+L(macOS)打开聊天框,输入以下命令回车,等待安装成功提示:

    复制代码
    /plugin-add superpowers
  2. 环境准备

    确保你的电脑已经安装:

    • Qt 5.15+ / Qt6
    • CMake 3.16+
    • Git
      并且已经配置好对应的环境变量(新手可以搜对应系统的Qt环境配置教程,5分钟就能搞定)。
  3. 初始化项目与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 技能就是帮你先把需求理清楚,定好最优方案再动手。

操作方法
  1. 在 Cursor 中打开刚才创建的 QtLoginDemo 文件夹

  2. 打开聊天框,输入 /brainstorm 触发技能,然后附上你的需求:

    复制代码
    我想开发一个Qt登录界面,需要包含用户名输入框、密码输入框、登录按钮、登录状态提示标签;本地模拟登录验证即可,正确账号密码是admin/123456;用Qt原生风格,适配Windows和Linux系统
  3. 技能会自动帮你澄清细节、给出2-3种实现方案,这里我们推荐新手用Qt Designer + ui文件的方案(可视化布局,后续修改方便),回复AI"批准这个方案"即可。

  4. 技能会自动把最终的设计方案保存到 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会自动触发这个技能,自动完成以下操作:

  1. 创建 .worktrees 隔离目录(已经配置到.gitignore,不会提交到Git)
  2. 创建新的开发分支 feature/login
  3. 把分支映射到隔离工作区,全程不用你敲一行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 addgit 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命令:

  1. 本地合并回 main 主分支
  2. 推送到远程仓库,创建 Pull Request
  3. 保持分支现状,稍后自行处理
  4. 丢弃本次开发的内容

我们选择「本地合并回主分支」,技能会自动帮你完成合并、清理隔离工作区、删除临时分支,全程一键完成。


三、新手必看!常见踩坑&避坑指南

  1. 报错:CMake 找不到 Qt

    解决方法:确保Qt的环境变量配置正确,Windows需要把Qt的bin目录加到PATH,Linux/macOS需要设置 CMAKE_PREFIX_PATH 为Qt的安装路径。

  2. Superpowers 技能触发没反应

    解决方法:先确认插件安装成功,重启Cursor;必须在初始化了Git的项目文件夹中打开Cursor,否则技能无法正常工作。

  3. ui文件编译报错,找不到 ui_Login.h

    解决方法:确保CMakeLists.txt中开启了 CMAKE_AUTOUIC ON,并且把login.ui加到了add_executable的源文件列表里。

  4. Git worktree 权限报错

    解决方法:关闭所有正在占用项目文件夹的程序(比如终端、资源管理器、其他IDE),再重新执行技能。


四、总结&进阶拓展

总结

我们用 Cursor Superpowers 的全流程技能,从需求澄清到最终合并,完整开发了一个可运行的Qt登录界面。整个流程规范、可控,新手跟着操作就能跑通,完全不用怕无从下手、写崩项目。

进阶拓展

  • 可以用这个流程开发更复杂的Qt界面,比如带菜单栏的主窗口、多页面切换、表格数据展示等
  • 可以结合 dispatching-parallel-agents 技能,并行开发Qt的多个模块,大幅提升开发效率
  • 可以用 writing-skills 技能,自定义Qt项目的自动打包、发布技能,一键生成安装包

如果你跟着操作遇到了问题,欢迎在评论区留言,我会一一解答!

相关推荐
liuyao_xianhui1 小时前
优选算法_分治_快速排序_归并排序_C++
开发语言·数据结构·c++·算法·leetcode·排序算法·动态规划
qq_283720052 小时前
Qt QML 中为 CheckBox 设置鸿蒙字体(HarmonyOS Sans)——适配 Qt 5.6.x 与 Qt 5.12+
开发语言·qt·harmonyos
未知鱼2 小时前
Python安全开发之简易目录扫描器(含详细注释)
开发语言·python·安全
左左右右左右摇晃2 小时前
Java并发——死锁
java·开发语言·spring
小白橘颂2 小时前
【C语言】基础概念梳理(一)
c语言·开发语言·stm32·单片机·mcu·物联网·51单片机
沫离痕2 小时前
AI机器人客服-Dify接入
开发语言·javascript·ecmascript
半瓶榴莲奶^_^2 小时前
java模式
java·开发语言
sword devil9002 小时前
TRAE:agent团队
开发语言
co_wait2 小时前
【c 语言】linux下gcc编译工具的使用
linux·c语言·开发语言