PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe bei C++ in Linux (KDE)



IceEagle
15-07-2001, 22:39
Hallo !

Ich möchte ein kleines Tool schreiben, ne Art Datenbank, jedoch soll die in KDE
laufen und nicht auf der Konsole. Terminalmodus ist auch etwas zu umständlich,
ein eigenes Fenster währe schon besser...

Leider habe ich absolut keine Ahnung, wie ich daß anstellen soll, da ich früher
in Windows unter TP 6.0 und DELPHI programmiert habe...

Ich weiß nur, wie man in C++ Daten einlesen und Speichern und ausgeben kann,
aber die Fensterfunktion ist mir leider unbekannt...


Programmaufgabe:

Beim start des Programmes soll folgendes passieren:

Aufforderung zur Eingabe der Datensätze:

Name:
Wohnort:
Telefonnummer:

Nach der eingabe der Datensätze soll es diese Daten in eine HTML-Datei
speichern, so das ich dann sozusagen über das aufrufen der HTML-Seite die Daten
sehen kann...

Das Speichern der Daten stelle ich mir nicht gerade als Problem vor, das kann
ich schon über die Konsole.

Nur, wie schreibe ich ein Programm, das in der grafischen Oberfläche KDE ein
Fenster aufbaut, und dieses Programm dann nach einen Namen oder einer
Telefonnummer fragt ?
Welchen Kompiler benöte ich dann noch ?, das wüßte ich auch noch gerne ;-)

Ich währe für jede Hilfe dankbar.

cYa Ice

P.S. Sicherlich kommen euch die gedanken, warum ich das nicht in PEARL oder sonst was mache, aber gleich vorweg, ich behersche lediglich PASCAL und besitze ein Handbuch von C++, und da ich das Programm noch Gestern brauche ;-)), mache ich es damit, da ich in Linux mit PASCAL überhaupt nix schaffe... Mit den anderen Sprachen dann schon garnicht...

jgbauman
16-07-2001, 00:17
Zu QT wuerd ich mir die Tutorials ansehen die bei der Dokumentation dabei sind
(wahrscheinlich /usr/doc/qt oder /usr/doc/packages/qt, wenn nicht dann www.trolltech.no). (http://www.trolltech.no).) Allerdings ist das auch nix fuer auf die Schnelle. Naja C++ und Rapid Application Development passen nicht gerade wie die Faust aufs Auge ;-)

Ansonsten koennte ich noch zu Python + wxWindows raten.

Wenn Du Delphi schon kennst und bezahlen kannst, dann schau dir doch mal Kylix an http://www.borland.de/kylix/index.html .

Tja, aber wenns ganz eilig ist und nicht unbedingt performant und perfekt sein muss (und dazu noch portable Unix/Win/Mac sein darf) dann das gut alte Tcl/Tk.

Folgenden text einfach in eine datei speichern (z.b. contact), ausfuehrbar machen (chmod a+x contact) und starten ( ./contact ).
Die drei Eingabefelder duerften selbsterklaerend sein.
OK uebernimmt die Eingaben, wenn in Name etwas steht.
Verwurf loescht die Eingabefelder
Speichern speichert die Eingaben eines Programmlaufs in <tt>contact.html</tt>.
Ende beendet einfach und ohne nachzufragen das Programm.
Geb ja zu, ist ein bisschen rustikal, aber es laeuft schon heute ;-)
Vielleicht ist es ja nuetzlich, aber keine Garantie auf funktionalitaet.


#!/usr/bin/env wish

label .titel -relief raised -text Dateneingabe -justify center

frame .name
label .name.text -text Name: -justify left
entry .name.entry -textvariable name

frame .ort
label .ort.text -text Wohnort: -justify left
entry .ort.entry -textvariable ort

frame .tel
label .tel.text -text Telefonnummer: -justify left
entry .tel.entry -textvariable tel

frame .but -relief raised
button .but.ok -text OK -command OK
button .but.verwurf -text Verwurf -command Verwurf
button .but.speichern -text Speichern -command Speichern
button .but.ende -text Ende -command Ende

pack .titel -side top

pack .name -side top -expand yes -fill x
pack .name.text -side left
pack .name.entry -side left -expand yes -fill x

pack .ort -side top -expand yes -fill x
pack .ort.text -side left
pack .ort.entry -side left -expand yes -fill x

pack .tel -side top -expand yes -fill x
pack .tel.text -side left
pack .tel.entry -side left -expand yes -fill x

pack .but -side top -expand yes -fill x
pack .but.ok -side left
pack .but.verwurf -side left
pack .but.ende -side right
pack .but.speichern -side right

set contacts [list ]

proc OK {} {
global contacts name ort tel
if {[string trim $name] == ""} {return}
lappend contacts [list [string trim $name] [string trim $ort] [string trim $tel] ]

set name ""
set ort ""
set tel ""
focus .name.entry
}

proc Verwurf {} {
global name ort tel
set name ""
set ort ""
set tel ""
focus .name.entry
}

proc Ende {} {
exit
}

proc Speichern {} {
global contacts stdout
set file [open "contact.html" w]

puts $file {&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Kontaktliste&lt;/TITLE&gt;&lt;/HEAD&gt;&lt;BODY&gt;}

foreach contact $contacts {
puts $file {&lt;P&gt;}
puts $file {&lt;B&gt;Name: &lt;/B&gt;}
puts $file [lindex $contact 0]
puts $file {&lt;BR&gt;&lt;B&gt;Wohnort: &lt;/B&gt;}
puts $file [lindex $contact 1]
puts $file {&lt;BR&gt;&lt;B&gt;Telefonnummer: &lt;/B&gt;}
puts $file [lindex $contact 2]
puts $file {&lt;/P&gt;}
}

puts $file {&lt;/BODY&gt;}
close $file
}

DerLipper
16-07-2001, 11:21
Hast du dir KDEvelop installiert ?

Dort must du einfach nur mal das Tutorial durcharbeiten :D

Gruß,
Marko

iGEL
16-07-2001, 18:32
Moin!

Ich würde auf eine zu enge Bindung zum Windowmanager verzichten. QT bietet ebenfalls einen hübschen Developer mit (Der von KDE ist doch der selbe, nur zusätzlich mit KDE-Krams verseucht, oder?), läuft aber auf jedem Rechner, auf dem Linux, X und QT installiert ist (bei dynamischer Bindung, statisch wird noch nicht mal QT gebraucht). Vorallem KDE 2 hat eben einige Nachteile (Speicherbedarf, Ladezeit!), die nicht jeder in kauf nehmen will...

cu Johannes (<-- Nutzt Windowmaker)