PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Konsolenprogramm +GUI



UserD
14-04-2003, 19:13
Hallo Leute,

ich versuche mich endlich richtig mit dem Programmieren zu beschäftigen unter Linux.

Ich hab mich nun entschlossen Konsolenprogramme zu schreiben in C / C++ und für diese dann eine GUI zum bedienen schreiben. (Mit C und C++ hab ich durch die Ausbildung schon Erfahrung)

Meine Frage ist aber, wie muss ein Konsolenprogramm aufgebaut werden bzw. was muss er enthalten damit man ihn per GUI steuern kann ???
Beispiel wäre da k3B steuert cdrecord.

Wird so ein Programm immer wieder von der GUI aufgerufen mit Parametern oder hat ein Konsolenprogramm Schnittstellen im Speicher mit diesen man ihn ansprächen kann ???

Hat einer evtl. ein Link wo sowas erklärt wird, ein Tutorial??

Ich brauch nur den Anfang, den ersten Schritt damit ich dann auf den Zug aufspringen kann !!

Thanks !!!

Gruß
UserD

anda_skoa
14-04-2003, 19:58
Es gibt da mehrere Möglichkeiten.

Die einfachste für das Konsolenprogramm ist, einfach normal zu funktioniern.
Die GUI muss dann den Output der Applikation parsen.
So wird das bei cdrecord gemacht.

Eine andere Möglichkeit ist, einen speziellen Commandline Switch vorzusehen und dann am stdin Eingaben entgegen zu nehmen und am stdout Ausgaben zu machen, wobei das Format der Eingaben und Ausgaben spezielle für die Verwendung in anderen Programmen strukturiert ist.
(Eindeutige Syntax, etc)

Eine andere Möglichkeit wäre das erzeugen eine Sockets.
Das kann sowohl ein TCP Socket sein, als auch ein Unix Domain Socket.
Bei ersterem hat man die Möglichkeit die GUI auch auf einem anderen Rechner laufen zu lassen, muss sich aber auch darüber Gedanken machen, dass man dadurch nicht kontrollieren kann, von wo her jemand verbindet.

eDonkey macht das zum Beispiel.

Ciao,
_

jamba
14-04-2003, 19:58
ich kann dir leider auch nicht viel helfen.
wir haben auf der uni einmal mit qt eine graphische oberfläche für ein c++ programm gestaltet. vielleicht kannst du ja mit qt (von trolltech) weitere tutorials oder so ähnlich finden.
bei meiner suse distri gibts auch den qt designer, vielleicht sind da ein paar tutorials.
ich geb dir auf jeden fall den tip einen designer zu verwenden.
ich mach viel guis in java, und ich lob mir den jbuilder. man ist so viel schneller, als von hand, und vorallem schaut das ergebnis auch nach etwas aus.

hast du dir schon mal überlegt auf java umzusteigen, oder magst du java nicht??

mir ist java viel lieber, um ehrlich zu sein.

jamba

UserD
14-04-2003, 20:14
Original geschrieben von anda_skoa
Es gibt da mehrere Möglichkeiten.

1.
Die einfachste für das Konsolenprogramm ist, einfach normal zu funktioniern.
Die GUI muss dann den Output der Applikation parsen.
So wird das bei cdrecord gemacht.

2.
Eine andere Möglichkeit ist, einen speziellen Commandline Switch vorzusehen und dann am stdin Eingaben entgegen zu nehmen und am stdout Ausgaben zu machen, wobei das Format der Eingaben und Ausgaben spezielle für die Verwendung in anderen Programmen strukturiert ist.
(Eindeutige Syntax, etc)

3.
Eine andere Möglichkeit wäre das erzeugen eine Sockets.
Das kann sowohl ein TCP Socket sein, als auch ein Unix Domain Socket.
Bei ersterem hat man die Möglichkeit die GUI auch auf einem anderen Rechner laufen zu lassen, muss sich aber auch darüber Gedanken machen, dass man dadurch nicht kontrollieren kann, von wo her jemand verbindet.

eDonkey macht das zum Beispiel.

Ciao,
_

1. Heißt das , dass der Output vom Programm in eine Datei geschrieben wird und die GUI liest es dann aus usw... ?

2. Hast du da mehr Infos dazu, ich glaub das ist das was ich eigentlich vorhatte !!


@jamba

Ich lerne grad in der Ausbildung C++ und C/C++ ist mir ans Herz gewachsen. Java hatte ich eine Woche lang auch schon gelernt aber ich muss mich halt entscheiden und weil ich C++ lerne.. dann eben C++.

Ich will die Programm in Kernprogramm und GUI (in QT) teilen, deshalb brauch ich das.
KDevelop interessiert mich. Kylix find ich nett aber das aussehen der Programm ist ziemlich , naja.....

anda_skoa
14-04-2003, 20:25
Original geschrieben von UserD
1. Heißt das , dass der Output vom Programm in eine Datei geschrieben wird und die GUI liest es dann aus usw... ?


Nein, ganz normal nach stdout, also zB mit cout <<



2. Hast du da mehr Infos dazu, ich glaub das ist das was ich eigentlich vorhatte !!


Im Wesentlichen ist das wie Methode 1 nur ist das Format eben besser für maschinelle Verarbeitung geeignet.




Ich will die Programm in Kernprogramm und GUI (in QT) teilen, deshalb brauch ich das.

Eine andere Möglichkeit wäre, die Funktionalität in einen Bibilothek zu geben und dann einen Consolenapplikation und eine GUI Applikation damit zu machen.

Ciao,
_

UserD
14-04-2003, 21:02
das mit der Bibliothek ist vielleicht für den Anfang mal zu heftig aber nun würde mir ein kleines Beispiel für die Möglichkeit mit dem Parsen reichen oder etwas ganz simples wo ich das nachlesen kann...... den Rest schaffe ich dann auch .......

hast da was ?

anda_skoa
14-04-2003, 21:34
Original geschrieben von UserD
das mit der Bibliothek ist vielleicht für den Anfang mal zu heftig aber nun würde mir ein kleines Beispiel für die Möglichkeit mit dem Parsen reichen oder etwas ganz simples wo ich das nachlesen kann...... den Rest schaffe ich dann auch .......

hast da was ?

Du meinst von GUI Seite her?

Such mal im Forum nach KProcess

Ciao,
_