PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Portable Grafiklibraries (C++)



Lukas
19.12.2004, 18:12
Hallo,
Ich würde gerne mit C++ grafische Programme schreiben (oder zumindest Fenster öffnen können). Da ich allerdings keine Lust habe, die Win-Api oder irgendwas Linux-internes zu verwenden, würde ich gerne von euch eine Empfehlung haben, welche portablen Grafiklibraries gut (und nicht zu komplex anzusteuern) sind.
Danke im Vorraus.

MagicMagor
19.12.2004, 18:45
Hm.. OpenGL

Ist eine reine Grafik-API, portabel und nicht sonderlich kompliziert. Also genau das was du suchst, oder? =) Tutorials gibbet hier: Nehe (http://nehe.gamedev.net/)

Lukas
19.12.2004, 18:51
Ja, danke.
Ich dachte immer, dass OpenGL nur für 3d-Entwicklung sei.

Edit:
Kann es sein, dass die Tuts auf der Win-API basieren? Dann müsste ich den Code für Linux doch komplett neu schreiben.

Freezy
19.12.2004, 19:40
Die tuts auf Nehe sind für Mac/MacOSx/Win/Solaris... übrigends auch die besten die du bekommen wirst ;)

Lukas
19.12.2004, 20:38
Ich hab' erstmal nur auf das für Win geklickt, und da war ein include für die windows.h enthalten. Deshalb hab' ich mich gewundert.
Gibt's irgendwo auch welche für SuSE Linux 9.2? (ja, ich weiß, dass das groß geschrieben wird, aber Capslock stinkt)

Freezy
19.12.2004, 21:34
Scroll mal bei dem ertsen Windows Tutorial ganz nach unten... da solltest du was finden ;)

Jesus_666
19.12.2004, 22:43
Du willst OpenGL direkt interfacen, nur um eine GUI zu haben? Overkill.
Es gibt einen ganzen Haufen von mehr oder weniger portablen GUI-Toolkits, die dir einen ganzen Haufen Arbeit abnehmen. Ich stelle mal ein paar vor:

Qt (Wikipedia (http://de.wikipedia.org/wiki/Qt), Website (http://www.trolltech.com/products/qt/index.html))
Trolltechs Qt ist für *nix und Mac OS X unter der GPL (http://de.wikipedia.org/wiki/GNU_General_Public_License) verfügbar, für Windows als Closed Source-Freeware. Es verwendet einen neuen Ansatz bei der Kommunikation zwischen einzelnen Objekten, so genannte "signals" und "slots". Viel weiß ich auch nicht darüber, weil ich mich mit Qt nicht wirklich befaßt habe. Qt ist eins der beiden großen GUI-Toolkits in der X11-Welt.
Qt wird praktisch überall in KDE verwendet und findet sich auch in Opera.
Mit dem Qt Designer gibt es ein Tool zum Erstellen von Benutzeroberflächen; zumindest mit KDE (KDevelop) ist es frei erhältlich.

GTK+ (Wikipedia (http://de.wikipedia.org/wiki/GIMP-Toolkit), Website (http://www.gtk.org/))
Das andere große X11-Toolkit. GTK+ ist das Toolkit hinter GNOME-Anwendungen und unter der LGPL (http://de.wikipedia.org/wiki/LGPL) verfügbar. GTK+ unterstützt Themes, mit denen der Look-and-feel an verschiedene Plattformen angepaßt werden kann. Es gibt Anbindungen für einen Haufen Sprachen wie C, C++, Java, Perl, PHP...
Als GUI-Editor wird meist Glade (http://glade.gnome.org/) benutzt.

FLTK (sprich: "Fulltick"; Wikipedia (http://de.wikipedia.org/wiki/FLTK), Website (http://fltk.org/))
FLTK ist ein sehr kleines Toolkit, sowohl von der Größe im Speicher und auf der Platte als auch vom Marktanteil her. Der Vorteil von FLTK ist, daß es fest in die Programme reinkompiliert wird - der Anwender muß keine Bibliotheken installieren und das Programm wächst nur um knapp 200 Kilobyte. Außerdem ist es relativ einfach, mit FLTK grafische Anwendungen zu basteln.
Andererseits... Nun ja, ich will nicht sagen, daß FLTK-Programme häßlich sind. Sie sehen einfach nur nicht gut aus. Ich hatte mit FLTK auch eine Reihe obskurer Kompilierfehler mit nichttrivialen Programmen; allerdings scheint die niemand sonst zu haben...
FLTK bringt mit Fluid seinen eigenen GUI-Editor mit.

wxWidgets (früher wxWindows; Wikipedia (http://de.wikipedia.org/wiki/WxWidgets), Website (http://wxwidgets.org/))
wxWidgets hat sich ein Ziel gesetzt: Ein in wxW-Programm soll sehr portabel sein und sich auf jeder Plattform perfekt anpassen: Unter Windows sehen wxW-Programme wie WinAPI-Programme aus, mit X11 wie GTK-Programme und unter OS X wie Carbon-Programme. Es wird auch eine Palette von Sprachen unterstützt.
Der Nachteil ist, daß sie sich fast perfekt anpassen; an ein paar Stellen merkt man aber doch noch, daß man ein Programm hat, das nicht mit dem normalen Toolkit läuft.

Lukas
20.12.2004, 20:19
Danke Jeez, du überschüttest mich ja geradezu mit Informationen. Ich werde mir das Ganze nochmal genaueer angucken und mich dann entscheiden.
OpenGL wäre natürlich ganz gut, wenn man später mal was komplexeres machen will, dann muss man nicht umlernen.
Ist OpenGL eigentlich unter Windows/Linux standardmäßig mit dabei oder muss das extra runtergeladne werden?

btw: GTK+ wird doch vom GIMP verwendet, oder?

Jesus_666
20.12.2004, 21:13
Ist OpenGL eigentlich unter Windows/Linux standardmäßig mit dabei oder muss das extra runtergeladne werden?
AFAIK sollte es gleich dabei sein.


btw: GTK+ wird doch vom GIMP verwendet, oder?
Exakt. Von Gaim auch.

MuadDib
21.12.2004, 10:31
Gut, Jesus hat ja alles nötige gesagt, nur möchte ich nochmal dir GTK+ ans Herz legen. Die Verwendung ist relativ einfach, und kommt obendrein ziemlich ohne Objektorientierung aus, und kannst daher schön mit C arbeiten :D

Obendrein sind GTK Programme bildhübsch :)
Mit diesem Tutorial (http://www.gtk.org/tutorial/) solltest du keine Probleme habem, deine ersten GTK Applikationen zu entwickeln.

--
Noch ein Wort zu OpenGL: Wenn du nicht gerade "malen" willst, sondern rein GUIs entwickeln, lass die Finger davon. OpenGL ist sehr low-level, und wenn du einen einfachen Button mit Interaktion programmieren willst, brauchts mehr Code als mit WinAPI. Ausserdem, sobald du mit den Extensions arbeiten willst, brauchst du nicht nur plattformspezifischen Code, sondern auch Kartenspezifischen Code... ist also recht umständlich.

blue lord
30.12.2004, 16:35
Obendrein sind GTK Programme bildhübsch
Mit diesem Tutorial solltest du keine Probleme habem, deine ersten GTK Applikationen zu entwickeln.
Gibt es noch ein anderes Tut zu GTK, das man sich runterladen kann? Ich habe keine Flatrate, und da ist das ein bissle sch****, wenn ich zum lernen immer im Internet sein muss.