Dieses Kapitel zeigt, warum der Streit „CLI gegen IDE” ein falsches Dilemma ist, und Sie werden entdecken, wie professionelle Teams einen Multi-Tool-Arbeitsalltag zusammenstellen: Qt Creator für Build und Debugging, Gemini CLI für Automatisierung und SSH, Cursor – für tiefes Verständnis der Qt-Architektur.
Es wird das Refactoring eines realen Projekts von einem main.cpp in eine modulare Struktur gezeigt, bei dem ein Tool die Aufgabe in ~10 Minuten und ein anderes in ~5 Minuten erledigt. Plus – 3 Cursor-Modi (Agent/Ask/Plan), Kontext-Management über @/#, und eine kurze Analyse des CLI/IDE-Player-Ökosystems.
Wenn KI derzeit „nach Laune” verwendet wird, sollte dieses Kapitel nicht übersprungen werden – sonst zahlen Sie weiterhin mit Zeit dort, wo bereits mit richtiger Prozess-Konfiguration bezahlt wird.
Das Kapitel enthält Code- und Prompt-Beispiele, die sofort einsatzbereit sind.
Selbsttest zum Kapitel
Wie unterscheiden sich CLI-Tools fundamental von KI-IDEs im Kontext der Qt-Entwicklung?Antwort
Richtige Antwort: CLI glänzt bei Skripten, Automatisierung und SSH-Sessions auf Servern, während KI-IDEs eine visuelle Umgebung mit tiefer Integration bieten, in der die KI die gesamte Projektarchitektur versteht, einschließlich Qt-Signale/Slots, Klassen und Abhängigkeiten.
Warum ist die parallele Nutzung von Qt Creator zusammen mit Cursor oder CLI-Utilities zu einer anerkannten Industriepraxis geworden?Antwort
Richtige Antwort: Dies ermöglicht eine effektive Verteilung funktionaler Aufgaben: Qt Creator fungiert als zentrale Plattform für Build, Debugging und Projekt-Lifecycle-Management, während spezialisierte Editoren erweiterte Navigations-, Refactoring- und KI-Assistenten-Interaktionsmöglichkeiten bieten.
Was ist MCP (Model Context Protocol) und welche Möglichkeiten eröffnet es für Qt-Entwickler?Antwort
Richtige Antwort: MCP ist ein offenes Protokoll von Anthropic, das KI-Modellen die Interaktion mit externen Tools und Daten ermöglicht. Für Qt bedeutet dies die Möglichkeit, die Projektstruktur zu lesen, Build-Befehle auszuführen (qmake, cmake), mit Datenbanken zu arbeiten, Figma-Layouts zu lesen und sogar Konsolen-Logs beim Debugging zu analysieren.
Warum muss Gemini CLI genau aus dem Projekt-Root gestartet werden?Antwort
Richtige Antwort: Damit Gemini CLI die gesamte Struktur und Dateien des Projekts sehen kann, muss es aus dem Root-Verzeichnis gestartet werden, von wo aus es über @-Symbole Zugriff auf alle Dateien hat und die Qt-Anwendungsarchitektur richtig verstehen kann.
Worin liegt der Hauptunterschied der drei Cursor-Arbeitsmodi: Agent, Ask und Plan?Antwort
Richtige Antwort: Agent-Modus führt automatisch mehrstufige Aufgaben mit Änderungen in mehreren Dateien aus; Ask-Modus analysiert nur und beantwortet Fragen ohne Code-Änderungen; Plan-Modus erstellt einen detaillierten schrittweisen Entwicklungsplan vor der Ausführung großer Aufgaben.
Warum sollten in Cursor Project Rules konfiguriert werden, und wie beeinflussen sie die Qualität des generierten Codes?Antwort
Richtige Antwort: Project Rules trainieren die KI in Ihrem Coding-Stil, Namenskonventionen, Architektur-Patterns und Qt-Projekt-Spezifika, wodurch der generierte Code konsistent aussieht, internen Teamstandards entspricht und die Anwendungsarchitektur nicht verletzt.
In welchen praktischen Szenarien sind CLI-Tools vollwertigen KI-IDEs vorzuziehen?Antwort
Richtige Antwort: CLI ist ideal für die Arbeit auf Remote-Servern über SSH, Build-Automatisierung in CI/CD-Pipelines, Skripterstellung für Routineoperationen und Situationen, in denen maximale Startgeschwindigkeit ohne grafische Oberfläche benötigt wird.
Warum ist iterative Entwicklung mit KI effektiver als Versuche, perfekten Code mit einer Anfrage zu erhalten?Antwort
Richtige Antwort: Der schrittweise Ansatz ermöglicht es, mit einer minimal funktionierenden Implementierung zu beginnen, die Kompilierung zu überprüfen und dann den Code sukzessive mit kurzen konkreten Prompts zu verbessern (Fehlerbehandlung, Thread-Sicherheit, Logging), wobei volle Kontrolle beibehalten und die Architektur nicht gebrochen wird.
Welche Qt-spezifischen Aspekte sind nach der KI-Code-Generierung kritisch zu prüfen?Antwort
Richtige Antwort: Es müssen geprüft werden: korrekte Parent-Ownership (jedes QObject hat einen Parent oder wird via deleteLater gelöscht), korrektes Threading (moveToThread, Qt::QueuedConnection), Verwendung moderner Signal/Slot-Syntax und Vorhandensein des Q_OBJECT-Makros in allen Klassen mit Meta-Objekt-System.
Wie werden die Symbole @, # und / in Cursor zur Kontext-Steuerung verwendet?Antwort
Richtige Antwort: @ wird für Referenzierung von Code-Elementen (Klassen) und Web-Links verwendet; # zum Hinzufügen spezifischer Projektdateien zum Kontext; / zum Aufruf eingebauter Befehle (z.B. /test für Unit-Test-Generierung).
Welcher Cursor-Modus sollte für das Hinzufügen großer Funktionalitäten wie API-Integration oder Qt6-Migration verwendet werden?Antwort
Richtige Antwort: Plan-Modus, der eine Idee in einen strukturierten schrittweisen Entwicklungsplan verwandelt und Zeit spart sowie das Risiko reduziert, das Projekt bei umfangreichen Änderungen zu beschädigen.
Warum sind Screenshots und visuelle Referenzen effektiver als Textbeschreibungen beim UI-Erstellen mit KI?Antwort
Richtige Antwort: KI-Modelle verstehen Bilder und können QML- oder QtWidgets-Markup direkt aus visuellen Referenzen generieren, wobei automatisch Farben, Größen, Abstände und Element-Layout bestimmt werden, was präziser und schneller ist als wortreiche Textbeschreibungen.
Worin übertraf Cursor Gemini CLI im praktischen Vergleich des Audioplayer-Refactorings?Antwort
Richtige Antwort: Cursor zeigte besseres Verständnis der Qt-Projektstruktur, schlug eine detailliertere Aufteilung in logisch unabhängige Klassen vor und erledigte die Aufgabe schneller (in 5 statt 10 Minuten) dank engerer Integration mit Sourcecode und Projektkontext.
Welche potenziellen Sicherheitsrisiken sind mit der Verwendung von MCP-Servern verbunden und wie können sie minimiert werden?Antwort
Richtige Antwort: MCP-Server erhalten direkten Zugriff auf Dateien und Systembefehle. Risiken werden minimiert durch Verwendung nur verifizierter Module, Verbot des Zugriffs auf Produktions-Secrets (Passwörter, Tokens, Keys) und vorherige Abstimmung der Server-Liste mit der Sicherheitsabteilung für Unternehmensprojekte.
Praktische Aufgaben
Einfaches Level
Gemini CLI einrichten und erstes Refactoring
Installieren Sie Gemini CLI auf Ihrem Computer, führen Sie die Autorisierung durch und erstellen Sie eine einfache Qt-Anwendung mit einer main.cpp-Datei, die eine Klasse mit QLabel und QPushButton enthält. Verwenden Sie Gemini CLI, um den Code in separate Header- und Implementierungsdateien (.h und .cpp) aufzuteilen.
Hinweise: Installieren Sie über npm install -g @google/gemini-cli. Starten Sie gemini aus dem Projekt-Root. Verwenden Sie das @-Symbol zum Hinzufügen von main.cpp zum Kontext. Formulieren Sie den Prompt nach dem Muster von Listing 69.1 mit Angabe der Qt- und C++-Version, dem Refactoring-Ziel und Anforderungen an die Dateistruktur.
Mittleres Level
Cursor: SettingsManager mit Project Rules erstellen
Installieren Sie Cursor und konfigurieren Sie Project Rules für Qt/C++-Entwicklung (unter Verwendung der Beispiele aus Listings 69.2 und 69.3). Erstellen Sie dann im Agent-Modus eine SettingsManager-Klasse mit JSON-Einstellungs-Speicherung, Änderungs-Signalen und thread-safe Implementierung. Überprüfen Sie, dass der generierte Code den festgelegten Style-Regeln entspricht.
Hinweise: Öffnen Sie Cursor Settings über Ctrl+Shift+J. Tragen Sie allgemeine Regeln in User Rules und C++-Regeln in Project Rules ein. Verwenden Sie den Agent-Modus (Ctrl+.) für mehrstufige Aufgaben. Prüfen Sie Vorhandensein von Q_OBJECT, korrekte Parent-Ownership, moderne Signal-Syntax. Verwenden Sie iterativen Ansatz: erst Basis-Implementierung, dann Verfeinerungen.
Komplexes Level
MCP-Server-Integration und visuelles UI-Refactoring
Verbinden Sie einen MCP-Server für Dateisystem oder Git mit Cursor. Erstellen Sie eine Qt Widgets-Anwendung mit mehreren Fenstern. Zeichnen Sie dann auf Papier oder in einem Grafikprogramm ein verbessertes Interface-Layout für eines der Fenster, laden Sie den Screenshot in Cursor hoch und bitten Sie die KI, das UI gemäß der visuellen Referenz zu refaktorisieren. Stellen Sie sicher, dass der MCP-Server für automatische Git-Commits der Änderungen verwendet wird.
Hinweise: Erkunden Sie den MCP-Server-Katalog auf mcpservers.org. Konfigurieren Sie MCP in Cursor Settings. Verwenden Sie das @-Symbol zum Anhängen des Layout-Bildes und # zur Angabe spezifischer .ui- oder .cpp-Dateien. Im Prompt geben Sie an: “Refaktorisiere UI gemäß Layout, behalte Funktionalität bei, aktualisiere Layout und Styles”. Verwenden Sie Plan-Modus zur Planerstellung, dann Agent zur Ausführung. Vergessen Sie nicht, die MCP-Server-Sicherheit vor der Verwendung zu prüfen.
💬 Nehmen Sie an der Diskussion teil!
Haben Sie Gemini CLI oder Cursor in Ihren Qt-Projekten ausprobiert? Interessante Use Cases mit MCP-Servern entdeckt?
Vielleicht haben Sie Fragen zur Wahl zwischen CLI und KI-IDE, zur Konfiguration von Project Rules oder zur Integration von KI-Assistenten in den Team-Workflow?
Teilen Sie Ihre Erfahrungen mit Refactoring-Automatisierung, berichten Sie über unerwartete Ergebnisse bei der Arbeit mit Agent-Modi oder helfen Sie anderen Lesern, praktische Aspekte der KI-Entwicklung mit Qt zu verstehen!