# [gelöst] Kdevelop und QT

## markusk21

Ich krieg's nicht hin!!!!

Ich habe schon einiges experimentiert (Erste Versuche).

Ich versuche eine QT-Anwendung zu kompilieren. Aber es fehlen offenbar immer einige Bibliotheken. 

Ich habe mein Projekt erstellt nach folgender Anleitung: http://women.kde.org/articles/tutorials/kdevelop3/index.html.

Ich hoffe ich habe keine Tippfehler übersehen, jedenfalls bekomme ich nach automake und  Konsorten und ./configure beim erstellen folgende Meldungen:  *Quote:*   

> cd '/home/markus/programming/sigcreate/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake 
> 
> gmake all-recursive
> 
> Making all in doc
> ...

 

Wie im oben genannten Thread berichtet habe ich in /etc/profile folgende Einträge:  *Quote:*   

> QTDIR="/usr/qt/3"
> 
> KDEDIR="/usr/kde/3.5"
> 
> LD_LIBRARY_PATH=$QTDIR/include:$KDEDIR:$LD_LIBRARY_PATH
> ...

 

Zusätzlich habe in in den KDevelop-Projekteinstellungen unter "Einstellungen für Configure" bei "Schalter für den C/C++ Präprozessor" folgenden Eintrag:  *Quote:*   

> -I/usr/qt/3/include -L/usr/qt/3/lib -lqt

 

Bei C++Besonderheiten habe ich die Benutzung von QT 3.x mit dem Qt-Installationsverzeichnis "/usr/qt/3" angekündigt.

Offensichtlich hat der Compiler (oder der Linker :ROOKIE:) die QApplication und anderen header gefunden, kennt aber QTextEdit

 nicht. Ist das in der .ui-Datei eingebunden und deklariert oder woher weiss er das das ein strukt ist?????

Kann mir bitte jemand eine Webseite oder so empfehlen, sodass ich endlich mit meinen GUIs anfangen kann. Ich hab die Nase echt voll von Konsolen-Anwendungen.Last edited by markusk21 on Tue Aug 08, 2006 10:26 pm; edited 1 time in total

----------

## markusk21

Mal ganz doof gefragt, entwickelt jemand (kleine) QT-Programme mit KDevelop?

Welche Schritte werden gemacht. Im anderen Thread sagte jemand man braucht ein Make-File (sollte ja wohl eigentlich autoconf erstellen, nicht). Was muss da rein?

Sprich, wie bekommt man ein QT-Programm mit .ui-Datei (mit QT- bzw. Kdevelop-Designer erstellt) compiliert????

Ich habe meine Projektdatei mal gepackt und verlinkt. Vielleicht hat jemand Lust meinem Problem mit mir nachzugehen? Was muss ich ändern? In KDevelop oder läuft es so bei jemand?

Ach ja, ich habe auf einem Rechner KDevelop 3.3.2 auf dem anderen 3.3.3 laufen.

Gruß Markus

----------

## intmain

 *Quote:*   

> Welche Schritte werden gemacht. Im anderen Thread sagte jemand man braucht ein Make-File (sollte ja wohl eigentlich autoconf erstellen, nicht). Was muss da rein?

 

Wenn du eine "reine" Qt-Anwendung entwickeln möchtest, also ohne KDE-Komponenten, ist es unter Umständen besser, ein QMake-basierendes Projekt mit KDevelop zu erstellen, es sei denn, du möchtest aus bestimmten Gründen unbedingt autoconf/automake verwenden. QMake-Projekte sind meiner Meinung nach viel einfacher und transparenter und vereinfachen es auch, die Anwendung auf anderen Plattformen (MacOS X, Windows) zu kompilieren.

 *Quote:*   

> Mal ganz doof gefragt, entwickelt jemand (kleine) QT-Programme mit KDevelop?

 

Es ist zwar schon länger her, dass ich zum letzten mal KDevelop verwendet habe (3.1 soweit ich mich erinnere), habe damals aber (zumindest mit weniger umfangreichen QMake-basierenden Projekten) keine schlechten Erfahrungen gemacht.

Die Compilerfehler "invalid use of undefined type ..." kommen daher, dass der aus .ui-Dateien generierte Header-Files nur Forward-Deklaratioen für die verwendeten Klassen beinhalten.

Ich habe an deinem Code folgende Änderungen vorgenommen, um das Programm lauffähig zu machen:

```
// sigcreate.cpp

#include "sigcreate.h"

#include <qlineedit.h>

#include <qtextedit.h>

#include <qcombobox.h>

SigCreate::SigCreate(QWidget* parent, const char* name, WFlags fl)

: SigCreateDlg(parent,name,fl)

{

}

SigCreate::~SigCreate()

{

}

/*$SPECIALIZATION$*/

void SigCreate::slotErstellenSignatur()

{

   SigFeld->append("\n--");

   SigFeld->append(NameLine->text());

   SigFeld->append(EmailLine->text());

   SigFeld->append(KommBox->currentText());

}

```

Da ich keine KDE-Libraries installiert habe, habe ich außerdem noch folgendes verändert:

```
// main.cpp

#include "sigcreate.h"

#include <qapplication.h>

#include <qlineedit.h>

#include <qcombobox.h>

#include <qmultilineedit.h>

int main(int argc, char **argv)

{

QApplication app(argc, argv);

    SigCreate *mainWin = 0;

        mainWin = new SigCreate();

        app.setMainWidget( mainWin );

        mainWin->show();

    return app.exec();

}

```

Um die Anwendung ohne KDevelop zu kompilieren habe ich in sigcreate/src noch die Datei sigcreate.pro erstellt und qmake ausgeführt bzw. mit make compiliert.

```
# sigcreate.pro

TEMPLATE = app

SOURCES += main.cpp sigcreate.cpp

HEADERS += sigcreate.h

FORMS += sigcreatedlg.ui

```

Wenn du beim Erstellen eines neuen Projekts in KDevelop QMake-basierend wählst, wird die .pro Datei automatisch erstellt und verwaltet.

Zu deinem Problem in Erste Schritte:

Auch dieses Problem lässt sich mit qmake lösen, einfach eine Datei firstprog.pro mit folgendem Inhalt erstellen

```
TEMPLATE = app

SOURCES += firstprog.cpp
```

und dann qmake und make ausführen.

Wenn du Qt3 und Qt4 installiert hast, musst du, wenn du Qt3 verwenden möchtest $QTDIR/bin/qmake statt nur qmake ausführen.

----------

## _hephaistos_

1) fehlermeldung sieht danach aus, dass du "qtextedit.h" nicht included hast...

2) wenns immer noch nicht geht: pack mal dein projekt und stells irgendwo online

hab mit kdevelop keine probleme... qmake project halt...

EDIT: hab gerade gesehen, dass du es gepackt hast. werds mal probieren und hoffentlich fixen  :Very Happy: 

----------

## _hephaistos_

wie zu erwarten war:

füg:

```

#include <qtextedit.h>

#include <qlineedit.h>

#include <qcombobox.h>

```

in sigcreate.cpp ein!

cheers

----------

## markusk21

die 3 Include-DAteien haben es gebracht!!!

Da aber so viele das andere Make-empfehlen werde ich das mal ausgiebig testen.

Hey, vielen, vielen Dank für eure Hilfe!!!!!!

----------

## _hephaistos_

kdevelop macht dir doch das genauso!

kdevelop arbeitet mit autoconf & automake -> flexibler und besser gehts fast nicht  :Very Happy: 

es wär gescheiter mal zu verstehen, worums geht, bevor du irgendwas machst, was dir jemand sagt...

dh:

- unterschied qmake project und kde project. stichwort QApplication und KApplication usw.

- unterschied autoconf & automake zu qmake -> jo, qmake generiert dir auch "nur" ein Makefile...

@profis: ja, ist nicht _astrein_ ausgedrückt und die Vergleiche hinken auch leicht, aber ich denke man versteht, worums geht  :Very Happy: 

----------

## markusk21

Ich habe glaube ich mein Hauptproblem identifiziert!

Mir war gar nicht klar, dass ich 2 QT-Versionen installiert habe, ganz zu schweigen davon, dass ich alte Header etc einbinde.

Ich habe jetzt (hoffentlich vollständig) meine Versuche auf QT4 umgestellt. So funktioniert auch unter Kdevelop einiges mehr auf Anhieb   :Very Happy:  .

Vielen Dank an alle und 

LG.

----------

