QtCreator vs Kdevelop

Alles zu Entwicklungsumgebungen und Editoren für Qt
Antworten
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

QtCreator vs Kdevelop

Beitrag von dazedly »

Hallo Leute,

ich würde gerne QtCreator benutzen, damit ich *.pro dateien und qmake in der IDE verwenden kann. Derzeit benutzen wir nur Kdevelop, weil es uns einige interessante Features zur Verfügung stellt.

Feature 1:

Ich lege im Header einer Klasse mehrere neue Funktionen an. Ich **wechsel in die cpp Datei und kann mit "STRG + Leertaste" die Funktion auswählen, welche von Kdevelop eingefügte werden soll (komplett mit klammern funktionsparametern etc)

**Feature 2:
Wenn ich zwischen Header und cpp Datei hin und her springen möchte, bzw den Header oder die cpp der offenen Datei öffnen möchte, drücke ich unter Kdevelop "STRG + Umschalt + C"

Feature 3:
Das Syntax highlighting ist im QtCreator ein wenig vernachlässigt worden. Eigene Klassen bzw Funktionen, bzw alle Funktionen, hebt er nicht hervor, genauso wenig wie Variablen.

Jetzt die eigentliche Frage:
Kann ich diese Features in QtCreator irgendwie aktivieren, oder wo finde ich diese?
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Beitrag von DBGTMaster »

was hat feature 1 fürn sinn, funktionsargumente zu kopieren

feature 2: mit f4 kannst zwischen cpp und h wechseln.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

qtcreator nur wegen qmake-Integration? Versteh ich nicht, kdevelop-4.1.0 kann sehr schön qmake integrieren.
Ansonsten Code-Completion und Wechsel Declaration<->Definition kann der Creator auch. Das farbigere Syntax-Highlighting hingegen hab ich bisher nur bei kdevelop bekommen. Das ist eng gekoppelt mit der DU-Chain (Definition-Usage) - das Herz von kdevelop.
kdevelop ist sogar so schlau, wenn du in nem connect() eine neue Methode einträgst (sei es Name oder Parameter), dir anzubieten, direkt eine Deklaration für diesen SLOT/SIGNAL einzufügen! Genauso natürlich auch bei normalen Methodenaufrufen.

Ich bin mittlerweile aber bei qt-creator - der verbraucht deutlich weniger Speicher (wobei ich vorhin beim Check auf "qmake"-Support bei kdevelop festgestellt hab, dass ich seit Ewigkeiten einen debug-build von kdevelop mit rumschlepp... Wird gerade korrigiert ;)) Ich hab "nur" 1GB RAM, und da muss man heutzutage wohl aufpassen, dass das noch reicht ^^ (firefox + kdevelop + kde-Umgebung ging so gerade, beim Kompilieren ging dann aber die Bedienbarkeit flöten - merde!))
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Beitrag von dazedly »

DBGTMaster hat geschrieben:was hat feature 1 fürn sinn, funktionsargumente zu kopieren
Du legst im Header folgendes an:

Code: Alles auswählen


		void machIrgendEtwas(int sparfuchs, QByteArray abc, QTcpSocket *cde, QString *def, QLineEdit *ghj, QCheckBox *ikl);
gehst in der cpp an der Stelle, wo du die Methode einfügen möchtest und drückst "STRG+Leertaste" und du bekommst dann alle Methoden angeboten, welche du noch nicht implementiert hast.
Er fügt dir jetzt so etwas ein:

Code: Alles auswählen


void dummyData::machIrgendEtwas(int sparfuchs, QByteArray abc, QTcpSocket* cde, QString* def, QLineEdit* ghj, QCheckBox* ikl)
{

}
Jetzt ist das zwar nicht so eine riesen Arbeit das selbst zu kopieren, aber wenn du im Header 3 oder 4 Methoden definiert hast, geht das so wunderbar einfach und schnell und man vergisst keine.

@franz

Ich benutze schon die ganze Zeit die Kdevelop 4.1. Ich habe bisher keine qmake Unterstützung finden können. Wenn ich ein neues Projekt anlegen möchte, bietet er mir nur cmake an. Kann es sein, dass du da noch ne Bete oder ne RC hast und dass die qmake Unterstützung nicht mit ins Release ist?
padreigh
Beiträge: 340
Registriert: 13. Mai 2010 10:06

Beitrag von padreigh »

QtCreateor hat code completion ... spiel mal mit string+leertaste
Feat 1:
In deinem Beispiel gibst du ein "dD"+string+Leertaste dann bietet er dir alle sachen an die mit kleinem d anfangen und als ersten Großbuchstaben ein D haben --> scope der klasse, da wählste mit pfeiltaste+enter aus. dann wieder string+leertaste für die liste der methoden/members .. gibtse nu nochn paar anfangsbuchstaben deiner Methode an, grenzt der das ein bis du was auswählst, selbiges für die Parameter.
Feat 2: f4 (am besten mal qtcreator starten, auf dem startschirm die quick tour auswählen und die entsprechenden Seiten durchackern ... das hilft ungemein)
Feat3: k.a. kenne KDev Highlighting nicht ... mir reicht das des QtCreators
Patrick (QtCreator 1.3.1, Qt 4.6.3)
---
template = subdirs
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

"strg" heißt nicht string sondern Steuerung - auf engl. Tastaturen steht da "ctrl"-control.
Wg. Syntax.Highlighting:
Z.B. der hier:
http://www.kdevelop.org/graphics/screen ... ration.png

Mehr Screenies (incl. kleinem Überblick über die Features) gibt es hier:
http://www.kdevelop.org/index.html?file ... shots.html
grog
Beiträge: 63
Registriert: 14. November 2009 21:33

Re: QtCreator vs Kdevelop

Beitrag von grog »

#1 [Edit] auf dem Funktionsnamen in dem .h <Alt>+<Enter> druecken, und dann "Add definition in .cpp" waehlen.
#2 geht mit F4 (oder F2 wenn Du tatsaechlich zwischen Deklaration und Definition springen willst)
#3 geht definitiv mit 2.1beta1 und Qt 4.7.1
Zuletzt geändert von grog am 27. August 2013 00:00, insgesamt 1-mal geändert.
grog
Beiträge: 63
Registriert: 14. November 2009 21:33

Beitrag von grog »

franzf hat geschrieben:qtcreator nur wegen qmake-Integration? Versteh ich nicht, kdevelop-4.1.0 kann sehr schön qmake integrieren.
"Sehr schoen"?

Hast Du's schon mal mit etwa ausserhalb der "Hello World"-Liga versucht? Z.B. $QTDIR/src/src.pro ? "Schoen" ist anders.
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Re: QtCreator vs Kdevelop

Beitrag von dazedly »

Gibt es mittlerweile ne Möglichkeit den Body von einer Memberfunction automatisch erstellen zu lassen von QtCreator?

Edit:
Ich habe gerade eine option gefunden. Und zwar Rechtsclick auf die function -> Refactoring -> Definition in example.cpp hinzufügen.
Gibt es dafür auch einen Shortcut, den ich im Body direkt benutzen kann?
Antworten