Graphische Anwendungen unter Linux coden
-
Hallo,
ich habe mich längere Zeit gegen Linux gesträubt und (ich denke mal) mit zunehmender
Reife habe ich bemerkt das es noch mehr außer Windows gibtSeit dem ich seit gestern mal wieder Linux auf meiner Platte habe wollte ich mal wissen
womit man "Graphische Anwendungen" (damit meine ich jetzt Apps die unter KDE, Gnome laufen)
programmiert?Vom Namen her kenne ich zwei, KDE und Qt
und ich weiß (oder stimmt es nicht?) das man die Programme die mit Qt geschrieben wurden
nur neu zu Komilieren braucht damit Sie auf anderen Plattformen laufen.Nun wollte ich mal wissen was es für verschiedenen Möglichkeiten (Vor und Nachteile) die
einzelnen Bibilothecken haben.Gibt es noch weitere Bibilothecken??
Ich bedanke mich schon mal im voraus für die Antworten.
-
Hi,
wenn du QT nutzt, dann isses korrekt, dass du die Programme die du geschrieben
hast auf anderen Plattformen nur neu kompilieren musst (Darfst natuerlich keine
Systemspezifischen Funktionen machen oder du arbeitest mit #ifdef etc.).KDE basiert auf QT. Hab aber mit KDE noch nie programmiert.
Ansonsten gibt es noch GTK+. Dazu kann ich allerdings nicht sehr viel sagen.
mfg
v R
-
Ergänzend zu GTK+ kann man noch GTK-- erwähnen, das eine objektorientierte Wrapperbibliothek zu GTK+ darstellt. Ansonsten gibt's natürlich noch Java.
-
QT ist in C++ geschrieben, und läuft unter Win+Lin.
Gtk(+ ?) ist in C geschrieben und läuft unter Win+Lin.Gnome basiert auf Gtk, KDE auf QT.
Installier dir mal Kdevelop und schnupper einfach mal was rein
-
Die Frage ist natürlich, welche Programmiersprache du einsetzen möchtest. Qt ist beispielsweise für C++ ausgelegt. Ich selbst verwende meistens die etwas ältere (aber auch auf anderen Unix-Systemen verfügbare) libxview. Diese ist zwar objektorientiert, setzt aber auf Standard-C (ohne ++) auf. Hier werden - wie bei vielen anderen Bibliotheken auch - Eingabeelemente wie Buttons, Slider usw. mit Callback-Funktionen hinterlegt, die bei Betätigung des Elementes aufgerufen wird. Die libxview ist bei SuSE standardmäßig dabei (Stichwort XView oder OpenLook); der Code zum Öffnen eines Fensters sieht beispielsweise so aus:
# include <xview/frame.h> int main(int argc, char *argv[]) { xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); xv_create(0, FRAME, FRAME_LABEL, "Mein Fenster", 0); xv_main_loop(frame); return(0); }
Mehr dazu findest du z. B. in meinem Buch "C und Linux" oder bei SuSE mit "man -l /usr/openwin/man/man1/xview.*".
Programme, die mit der libxview erstellt wurden, sind z. B.: "workman" (CD-Player), "meminfo" (zeigt Speicherauslastung an) und "xcam" (WebCam unter X11 darstellen).
Martin
-
QT ist nicht mit C++ geschrieben, sondern benutzt einen Precompiler.
In richtigem C++ ist GTK--
-
@kingruedi
Trotz des Moc ist die QT an sich trotzdem noch in C++ geschrieben. Die Makros erweitern die Klassen doch nur um einige Funktionen die ihren Nachrichtenmechanismus implementieren, wenn das ein Bruch der Objektorientiertheit ist dann ist die MFC auch nicht objektorientiert.
Joe
-
Danke erst mal für die Antworten.
nach eueren Antworten zu urteilen schreibt ihr keine Graphischen Awendungnen
wenn ja wieso? (weil’s die Konsole auch tut?)
wenn nein welche Lib's Benutzt ihr?
-
hab ich noch vergessen.
Wenn ich mit einer Lib anfange will ich natürlich auch sicher sein das es diese noch auf längere Zeit gibt.
-
<Hubert>
Wieso kommst du darauf das keiner der hier geantwortet hat GUI-Programme schreibt.
QT , Gtk sind Bibliotheken.
Ich persönlich verwende QT.
Allerdings gibt es unter Windows nur die V 2.3 als freie Version.
-
Genau Unix-Tom, ich verwende auch meistens die Qt und bin eigentlich ganz zufrieden.
Von der Zukunftsicherheit kann man eigentlich bei allen ein "Daumen hoch" machen. Ich denke nicht das du Zeit verschwenden wirst, egal ob es nun die Qt oder Gtk ist .
Joe
-
Ich programmiere zum größten Teil in der Konsole, da ich alles was ich realisieren will auch ohne Probleme (sogar viel besser) in der Konsole schreiben kann. Ich finde GUI verkompliziert das programmieren nur, man muss sich auf einmal um tausend Dinge kümmern, wofür man vorher ein cout << "bla" << endl; oä. hatte. Wenn ich GUI programmiere, dann arbeite ich mit GTK--
@JoeIntel
man programmiert aber mit Macros über einen Präprozessor. Theoretisch könnte man sich ja auch einen Präprozessor schreiben, der Java Code nach C++ konvertiert, dann programmiert man aber Java und kein C++Natürlich ist QT nocht recht nah an C++, ich würde es aber nicht als C++ bezeichnen.