PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KDevelop 2



IceEagle
06-10-2002, 23:36
Hallo!

Ich habe im QT-Designer eine Vorlage erstellt, mit einigen Feldern, Buttons u.a.
Ich möchte nun diese Button und die Engabefelder mit Funtkionen definieren.

Die UI-Datei vom Designer habe ich schon zu einer cpp und zu einer h-Datei umgeändert.
Aber wie kann ich nun das Programm im Develop erweitern,
damit, wenn man z.B. einen Button drückt, der text in den Feldern abgespeichert wird?

Ich habe schon Erfahrungen mit Delphi 5.0 unter Windows. Da war das alles etwas leichter, weil man die "Form" direklt sehen konnte und nicht erst designen musste.

Es wäre sehr schön, wenn mir jemand mal erklären könnte, wie ich das machen muss.

Danke im Vorraus

Maik

anda_skoa
07-10-2002, 11:25
Original geschrieben von IceEagle

Die UI-Datei vom Designer habe ich schon zu einer cpp und zu einer h-Datei umgeändert.
Aber wie kann ich nun das Programm im Develop erweitern,
damit, wenn man z.B. einen Button drückt, der text in den Feldern abgespeichert wird?


Die übliche Verfahrensweise ist die:
cpp und h aus der ui Datei erstellen.
diese drei Dateien zum Projekt hinzufügen.
Dann eine neue Klasse erstellen, die von der Klasse der Form ableitet.
In dieser Klasse wird dann alles, was Funktionalität und Programminterface ist, gemacht.
Wird zum Beispiel hier sehr gut erklärt: http://women.kde.org/projects/coding/tutorials.phtml



Ich habe schon Erfahrungen mit Delphi 5.0 unter Windows. Da war das alles etwas leichter, weil man die "Form" direklt sehen konnte und nicht erst designen musste.


Kann mir zwar nicht vorstellen, wie man eine Form erstellt ohne die einzelnen Elemente zu gruppieren, aber ich kenn auch Delphi nicht :)
Vielleicht hat das ja ein Gedanken-Interface :cool:

Wie dem auch sein, du könntest dir ja die Open Edition von Kylix besorgen, wenn du mit dieser Art der Entwicklung besser zu recht kommst.

Ciao,
_

IceEagle
07-10-2002, 12:24
Kylix befindet sich in meiner edition,
habe es installiert, weiß aber nicht, wie ich es starten soll.
außerdem soll ich dafür angeblich einen registrier-code brauche...

aber ganz davon abesegen, ich will es trotzdem mit Develop machen,
weil ich es bedienen können muss, es wäre beruflich vom Vorteil...

Kennst Du Dich denn mit develop aus?

IceEagle
07-10-2002, 12:27
Die übliche Verfahrensweise ist die:
cpp und h aus der ui Datei erstellen.
diese drei Dateien zum Projekt hinzufügen.
Dann eine neue Klasse erstellen, die von der Klasse der Form ableitet.
In dieser Klasse wird dann alles, was Funktionalität und Programminterface ist, gemacht.
Wird zum Beispiel hier sehr gut erklärt: http://women.kde.org/projects/coding/tutorials.phtml

danke für den Tipp!, werd es mir mal ansehen.

anda_skoa
07-10-2002, 13:11
Original geschrieben von IceEagle
Kylix befindet sich in meiner edition,
habe es installiert, weiß aber nicht, wie ich es starten soll.


startkylix oder so hab ich mal wo gelesen.



außerdem soll ich dafür angeblich einen registrier-code brauche...


Ja, hab ich auch gehört/gelesen.



Kennst Du Dich denn mit develop aus?

Denke ja ;)

Ciao,
_

IceEagle
07-10-2002, 16:27
Zu Kylix, stimmt, bei startkylix macht er was...
Er schreibt: generation font matrix. Please wait...
Das steht nun schon seit ca. 30 Minuten auf meinem Monitor, bei einem 800 MHz-Prozessort...
Muss wohl was größeres sein *gg*.
Und die Festplatte rüht sich überhaupt nicht...

Soviel zu Kylix.

Zu Develop,
könntest Du mir ein klitzekleines Beispiel-Progrämmchen geben :)
damit ich mir das mal ansehen kann?
Z.B. Einfach nur ein Fenster, wo man einen Button und eine Textzeile hat,
und wenn man auf den Button klickt,
dass dann z.B. das gute alte "Hello Word" in die Laufzeile geschrieben wird?
Oder bekommt man sowas vielleicht irgendwo?

Ich hab mir mal mit dem Wizzard eine VOrlage erstellen lassen,
aber das sind so viele Dateien und Funktionen, da kann ich nichts mehr daraus lernen.
Ich hab das früher so gelernt, indem ich Beispiel-Programme auseinander genommen und verändert habe, aber wenn ich hier was verändere, ist dass alles nur noch murks.

So, wie Du das gesagt hast, dass man eine H und Cpp-Datei erstellt und diese dem Prjekt hinzu fügt, habe ich das gemacht, aber wenn ich es starte, kommt nicht mein Fenster vom Designer, sondern das Wizzard-Vorgabe-Fenster und ich hab keine Ahnung, wie ich das ändern soll...

Ich möchte, dass meine UI-Datei das Fenster ist, was er beim starten sofort öffnet.
Und wenn ich dann die Buttons klicke, muss irgendwas pssieren,
was ich dann noch mit Hand festlegen werde...
So wie in Delphi ja auch... Datei speichern und so, dass kann ich programmieren,
sofern ich weiß, wie man auf den Button reagiert und wie man die textzeile anspricht bzw. einließt...

anda_skoa
07-10-2002, 18:23
Original geschrieben von IceEagle
könntest Du mir ein klitzekleines Beispiel-Progrämmchen geben :)
damit ich mir das mal ansehen kann?
Z.B. Einfach nur ein Fenster, wo man einen Button und eine Textzeile hat,
und wenn man auf den Button klickt,
dass dann z.B. das gute alte "Hello Word" in die Laufzeile geschrieben wird?
Oder bekommt man sowas vielleicht irgendwo?


Das Beispiel Programm des Tutorials, das ich gepostet habe, ist zwar ein wenig umfangreicher, aber sollte noch einfach genug sein, oder?



Ich hab mir mal mit dem Wizzard eine VOrlage erstellen lassen,
aber das sind so viele Dateien und Funktionen, da kann ich nichts mehr daraus lernen.


Nimm eine Qt Mini oder KDE Mini als Projekttyp.
Dann gibt es nur eine Klasse, die so heißt wie der Applikationsname.
Diese Klasse ist dann das Hauptwidget (Hauptform) der Applikation.



So, wie Du das gesagt hast, dass man eine H und Cpp-Datei erstellt und diese dem Prjekt hinzu fügt, habe ich das gemacht, aber wenn ich es starte, kommt nicht mein Fenster vom Designer, sondern das Wizzard-Vorgabe-Fenster und ich hab keine Ahnung, wie ich das ändern soll...


Dazu mußt du eine Instanz des Widgets erzeugen.
Wenn du wie oben gesagt eine KDE Mini Appliaktion machst, geht das am einfachsten so:
Du klickst auf den Name der Klasse in der Klassenansicht links.
Das öffnet die Headerdatei der Klasse.
Dort steht in etwa sowas



#include <qwidget.h>

class AppName : public QWidget
{
Q_OBJECT
public:
AppName(QWidget* parent, const char* name);
};


das änderst du dann so:


#include "meinwidget.h"

class AppName : public MeinWidget
{
Q_OBJECT
public:
AppName(QWidget* parent, const char* name);
};


Eine entsprechende Ändeurng brauchst du dann noch im cpp File


AppName::AppName(parent, name) : MeinWidget(parent, name)
{
}


Erklärung: du machst das vorhanden Widget AppName zu eienr Subklasse deines Widgets(Form).
Im obigen Beispiel bi ich davon ausgegangen, dass dieses Widget MeinWidget heißt und der Header meinwidget.h heißt.



sofern ich weiß, wie man auf den Button reagiert und wie man die textzeile anspricht bzw. einließt...

Auf den Button reagieren macht man, in dem man an sein clicke() Signal einen SLOT verbindet.
Dieser wird dann ausgeführt, wenn der Button geklickt wird.
Wird aber alles im Tutorial beschrieben.

Ciao,
_

IceEagle
12-10-2002, 00:23
erstmal danke für die vielen Tipps!

Irgendwie fehlt meinem Develop was,
dieses QT-MDI kann ich nicht erstellen,
da meldet mein Programm fehler.

Es erstellt erst einen Haufen an Dateien und dann meldet es irgendwann:


sh: ./configure no permission

--- fehlgeschlagen

Naja, zugegeben, die Datei hat kein Execute-Recht,
aber er hat sie doch noch sekunden davor selbst erstellt, ohne dieses Recht.

Wenn ich der Datei dann ExecuteRecht gebe, und dann unter "Erstellen - Configure" die Make-Files nachmachen lassen will, schreibt er mal "ERFOLG" und mal "FEHLGESCHLAGEN", aber eine MakeDatei erstellt, hat er noch nie dafür...

Das Beispielprogramm was ich aus dem Netz geladen habe, enthält auch keine Make-Daten, ich soll sie nacherstellen lassen.
Aber das ist das gleiche Problem.

Irgendwie spinnt der Kasten bei mir. :rolleyes:

Ich verwende SuSE Linux 7.3 mit dem Kernel, dem QT und dem Develop was dabei war.
Installiert müsste eigentlich alles sein. Habe gerade nochmal die Konfiguration "Programmentwicklung" unter Yast nachinstalliert, dabei wurden noch 28 Pakete hinzu gefügt. Aber das ändert leider nicht viel.
Das QT findet er, aber trotzdem macht er nicht, was er soll.

Muss ich für die Fehlerbehebung von Develop jetzt erst wieder nacjh LinuxForen.de?
Die haben mich nämlich wegen Develop hier hin geschickt :D

KDE-Normal-Projekte kann ich erstellen, laden und er müsste auch Makefiles erstellen.
Zumindest macht er es beim Wizard fehlerhaft und die Programme kann ich auch ausführen.
Bei allen anderen Projekt-Arten aber leider nicht.
Daher kann ich mit dem Beispiel nichts machen, es ist scheinbar kein KDE-Normal.

anda_skoa
12-10-2002, 11:52
Original geschrieben von IceEagle
erstmal danke für die vielen Tipps!


Keine Ursache :)



Irgendwie fehlt meinem Develop was,
dieses QT-MDI kann ich nicht erstellen,
da meldet mein Programm fehler.


Vielleicht ist KDevelop nicht richtig installiert.
Oder eine Teilpaket davon fehlt.

Außerdem würd ich eher die Finger von MDI lassen.



Das Beispielprogramm was ich aus dem Netz geladen habe, enthält auch keine Make-Daten, ich soll sie nacherstellen lassen.
Aber das ist das gleiche Problem.


Hmm, vielleicht ein autoconf, automake Problem
Welche Versionen hast du da?
#> autoconf --version
#> automake --version



Muss ich für die Fehlerbehebung von Develop jetzt erst wieder nacjh LinuxForen.de?
Die haben mich nämlich wegen Develop hier hin geschickt :D


Nein, du bist hier schon richtig.
Ich tippe auf ein unvollständig insatlliertes KDevelop oder eine bechädigte Installation.

Das einfachste Tutorial auf developer.kde.org kommt auch ohne Makefiles aus:
http://developer.kde.org/documentation/tutorials/khello/khello.htm

Ciao,
_

IceEagle
12-10-2002, 12:00
hallo!

Nochmals danke :)


Zur Version:

autoconf (GNU Autoconf) 2.52
Written by David J. MacKenzie.

Copyright 1992, 1993, 1994, 1996, 1999, 2000, 2001
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


automake (GNU automake) 1.4-p5

Copyright (C) 1999, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Written by Tom Tromey <tromey@cygnus.com>


Das mit diesem einfachem Programm werde ich mir mal ansehen, vielen Dank.

Schöne Grüße

Maik

IceEagle
12-10-2002, 13:08
ne also irgendwie klappt hier garnichts.

Dieses khello-Programm ist ja nur eine cpp -datei, die kann ich uwar mit Develop öffnen, aber nicht complilieren.
Das soll ich mit G++ selbst machen.
Aber wenn ich dass mache, findet er die gesammten Include-Files nicht.

mit find -name kapp.h auf der gesammten Platte findet sich aber nichts, was so heißt.

Gib es nichts, was komplett unabhängig von Include ist und alles in einer Datei enthält, die man einfach nur noch öffnen muss? Am besten die man auch unter Develop öffnen und compilieren kann :confused:

anda_skoa
12-10-2002, 13:40
Original geschrieben von IceEagle
Gib es nichts, was komplett unabhängig von Include ist und alles in einer Datei enthält, die man einfach nur noch öffnen muss? Am besten die man auch unter Develop öffnen und compilieren kann :confused:

Nein, die KDE header brauchst du auf jeden Fall.

Schau nach, ob du die devel Pakete von qt und KDE installiert hast.

Ich werd mal eine kleines Beispiel Programm zusammenstellen, vielleicht klappt das bei dir dann.

Qt2 und KDE2, richtig?
KDevelop2.1?

Ciao,
_

IceEagle
12-10-2002, 14:22
Ja, also QT 2.3.1 habe ich und KDE 2 ist korrekt.

Ich habe dem Develop auch schon den Korekten Ordner für QT mitgeteilt, er findet es.

/usr/lib/qt-2.3.1

Ich habe jetzt folgendes versucht:

ich habe eine KDE-MINI-Anwendung erstellt.
QT-MINI kann ich garnicht auswählen, das existiert bei mir nicht.

Das Programm habe ich genauso genannt, wie es auch in der Designer-Vorlage heißt.
Dann habe ich die Datei "Programmname.cpp" und "Programmname.h" gelöscht und durch die vom QT-Designer mit gleichen Namen dort rein kopiert.

Das macht er aber nicht.
Er meckert andauend rum, dass im der Variabel "VERSION" nicht definiert wurde...

Ich füge diesem Text man meine QT-Vorlage als UI mit hier bei.
Das ist das Programm, was ich erstellen will.

IceEagle
12-10-2002, 14:23
Der Anhang ist keine ZIP-Datei sondern eine TGZ-Datei.
Ich kann keine ZIP-Dateien erstellen, aber dieses Forum lässt keine anderen Typen zu, darum hab ich die TGZ einfach zu ZIP umbenannt!

anda_skoa
12-10-2002, 15:46
Original geschrieben von IceEagle
ich habe eine KDE-MINI-Anwendung erstellt.
QT-MINI kann ich garnicht auswählen, das existiert bei mir nicht.


KDE MIni ist ein sehr guter Ausgangspunkt



Das Programm habe ich genauso genannt, wie es auch in der Designer-Vorlage heißt.
Dann habe ich die Datei "Programmname.cpp" und "Programmname.h" gelöscht und durch die vom QT-Designer mit gleichen Namen dort rein kopiert.
Das macht er aber nicht.
Er meckert andauend rum, dass im der Variabel "VERSION" nicht definiert wurde...


Hmm, solange du noch nicht die ganzen Zusammenhänge kennst, würde ich raten, du machst Sachen, die sicher sind.
Zum Beispiel so, wie es es weiter oben (am 7.10) vorgeschlagen habe.

Ich arbeite gerade an einem Beispiel.

Ciao,
_

anda_skoa
12-10-2002, 16:04
Hier ist deine UI eingebaut:

Ich habe das admin Verzeichnis entfernt, weil es sonst zu große geworden wäre.
Du kannst das admin aus deinem Projekt nehmen.

Das Attachment ist ein tar.bz2
entpacken mit
#> tar xjvf dbtest-0.1.tar

Ciao,
_

anda_skoa
12-10-2002, 16:29
Hier nochmal fast das selbe, diesmal mit einem anderen Hauptwidget.
Ich hab einfach aus deinem alle Element entfernt und vier neue hinzugefügt.

Dann für die beiden Buttons Slots in der Hauptklasse implementiert.

Ciao,
_

IceEagle
12-10-2002, 16:48
vielen Dank. Ich werd es mir sofort mal anschauen :)
DANKE!

IceEagle
12-10-2002, 17:12
Negativ, ich kann sie zwar laden,
aber sobald ich das getan habe kommt die Meldung, das keine Makefiles vorhanden sind.
Ich kann sie nicht compilieren.
Angeblich soll ich auf Erstellen - Configurieren klicken,
aber das scheitert.
Das selbe Problem ist es, wie wenn ich z.B. QT MDI erstelle,
oder eins der Beispiele aus dem Internet down lade...

Irgendwas stimmt mit meinem Develop nicht. :(

Ich hab SuSE Linux 7.3, die FTP-Version aus dem Internet.
Und die Gruppe Programmiersprachen ist komplett installiert,
ich weiß nicht, was da noch fehlen soll.

Was könnte das denn für eine Ursache haben?

anda_skoa
12-10-2002, 17:26
Original geschrieben von IceEagle
Negativ, ich kann sie zwar laden,
aber sobald ich das getan habe kommt die Meldung, das keine Makefiles vorhanden sind.


Ja, ich hab ein make distclean gemacht

Hast du das admin Verzeichnis reinkopiert?
Wenn ja, dann solte das gehen
#> make -f Makefile.dist
#> ./configure
#> make

Ciao,
_

IceEagle
12-10-2002, 17:44
Ja, den Admin-Ordner habe ich von einer "Normalen KDE"-Klasse eingefügt.

Also die Fehlermeldungen sind folgend:

Fehlermeldung von Develop beim Konfiguration erstellen Erstellen/Configure



checking for IceConnectionNumber in -lICE... yes
checking for libXext... yes
checking for Xinerama... no
checking for pthread_create in -lpthread... yes
checking for libpng... -lpng -lz -lm
checking for libjpeg6b... no
checking for libjpeg... -ljpeg
checking for Qt... libraries /usr/lib/qt2//lib, headers /usr/lib/qt2//include
checking if Qt compiles without flags... no
checking for moc... /usr/lib/qt2//bin/moc
checking for uic... /usr/lib/qt2//bin/uic
checking for rpath... yes
checking for KDE... configure: error:
in the prefix, you've chosen, are no KDE headers installed. This will fail.
So, check this please and use another prefix!
*** fehlgeschlagen ***

make -f Makefile.dist



AM_INIT_AUTOMAKE is expanded from...
configure.in:3: the top level
make[1]: *** [cvs] Error 1
make: *** [all] Error 2

anda_skoa
12-10-2002, 18:30
Wenn configure geht, dann ist Makefile.dist nicht nötig.
im zweiten Beispiel von mir, ist noch kein configure vorhanden.

Zu ersten Fehlermeldung.
Ist das kde-devel Paket installiert?

Was sagt
#> locate kapplication.h

Ciao,
_

IceEagle
12-10-2002, 18:38
ja, das configure funktioniert nur leider nicht.
Die Fehlermeldung hab ich ja oben gepostet.

KDE-DEVEL ist installiert, zumindest wird es mir in Yast unter KDE2 als installiert angezeigt.



locate kapplication.h

Bei dem Befehl passiert nichts, als dass er ein wenig wartet und dann kann ich die nächste Eingabe im Terminal machen.
Also er scheint ws zu suchen, aber es wird nichts aufgelistet.

anda_skoa
12-10-2002, 19:19
Hmm, wenn locate den header nicht findet, frage ich mich, wo er installiert ist.

Vielleicht ist nur die locatedb nicht up to date.

Such mal die Datei kapplication.h bzw kapp.h

Vielleicht unter /opt/kde2/include oder so.

Ciao,
_

IceEagle
12-10-2002, 21:49
ich habe mit

find -name kapplication.h
die ganze Festplatte absuchen lassen, sie existiert nicht. :(

Das ist echt nicht zu fassen.
Einfacher wäre es, die Datei aus den Sourcecodes zu streichen *gg*.

Kannst Du mir eine kapplication geben?
Oder was muss ich installieren?

anda_skoa
12-10-2002, 23:01
Das versteh ich nicht :confused:
Das sit einer der zentralsten KDE header.
schau mal ob kapp.h da ist.

Wenn der auch nicht da ist, sind die KDE header nicht installiert.

Die sollten aber eigentlich im kde-devel paket sein.
Gibt es vielleicht ein kdelibs-devel oder so?

Ciao,
_

IceEagle
13-10-2002, 07:44
also die KAPP.h existiert.
und eine kapplication.h habe ich mir jetzt über Google gesucht und in das selbe Verzeichnis kopiert, wie die KAPP.h

Ich weiß aber nicht, ob das so geht, ob man die irgendwo noch eintragen muss?!

/opt/kde2/include

Ich hab jedenfalls mit Locate nichts mehr finden können,
dort weiß er noch nicht, dass es die Datei gibt.

ich werd mich damit ein andernmal befassen müssen, hätte nicht gedacht, dass es soviel Zeit raubt.
Vielleicht nehm ich doch Kylix, da fehlt mir nur die S/N, vielleicht gibts die irgendwo im Netz...
Jedenfalls ist Software von Borland sehr zuverlässig, ich war mit Delphi immer sehr zu frieden.

Naja, nochmals VIELEN DANK für Deine Unterstützung und Hilfe, find ich echt toll, das Du so hilfsbereit bist. :)

Viele liebe Grüße

Maik

anda_skoa
13-10-2002, 11:40
Original geschrieben von IceEagle
also die KAPP.h existiert.
und eine kapplication.h habe ich mir jetzt über Google gesucht und in das selbe Verzeichnis kopiert, wie die KAPP.h


Mit der kapp.h wäre es auch gegangen. Das ist praktisch der selbe Header.
kapplication.h ist ab KDE3 der "echte".



Ich hab jedenfalls mit Locate nichts mehr finden können,
dort weiß er noch nicht, dass es die Datei gibt.


Das macht er beim nächsten Update der Datenbank selber.
Es sollte jetzt schon funktionieren.
Vielleicht geht es auch, wenn man in meinen Sourcen das kappliaction.h durch kapp.h ersetzt.

Wenns nicht klappt, dann schick mir einen Persönliche Nachricht und schreibe deine email Adresse rein.
Dann schick ich dir das Beispiel mit admin Verzeichnis.

Abgesehen davon, kann du im zweiten Beispiel ja im Code schön sehen, wie die Integration eines Designer erstellten Widgets in das Programm geht.
Inklusive Verknüpfung der Buttons mit Funktionen und die Verwendung von Layouts im Designer :)



ich werd mich damit ein andernmal befassen müssen, hätte nicht gedacht, dass es soviel Zeit raubt.


Normalerweise geht das auch sofort. Warum bei dir solche Schwierigkeiten auftreten, ist mir echt ein Rätsel.

Ciao,
_