Mal absolute Anfängerfragen.
Unter Win ist es ja recht übersichtlich, da gibt es eben die WinAPI.
Aber unter Linux gibt es ja versch. GUIs z.B. Qt (beruht KDE darauf od. ?),
Gtk+(+)? (beruht gnome hauptsächlich darauf ?), ich habe schlichtweg keine Ahnung.
Eigentlich ist es dann ja auch fast egal, was man unter Linux für GUIs benutzt, denn gnome-Anwendungen laufen unter KDE ja genauso wie umgekehrt.
Was hat es dann noch mit der Xlib auf sich ? Und wie schreibt man ein grafisches Programm allgemein für Linux ? Ist es egal, weil ja die Programme
sofern die Bibliotheken vorhanden sind sowieso laufen ?
Kann man Qt/Gtk/Xlib Programme auch unter Windows zum laufen bekommen ?
Worin wird dann z.B. Opengl eingebettet ?
Hat jemand eine Buchempfehlung für "LinuxAPI" ?
eicon
APIs unter Linux
gute güte wieviele fragen auf einmal:
Xlib : http://www.the-labs.com/X11/XLib-Manual/
GTK und QT sind Bilblitheken für GUI Programmierung, beide existieren auch in
versionen für Windows. die xlibs stellen die grundlegenden funktionen der xserver
zur verfügung. das hat mit GUI erstmal so nix zu tun.
GTK+ ist die alte Version von GTK, die neuere heisst GTK2
GTK ist entstanden aus dem Gimp Projekt, weil man damals für Gimp ein neues GUI
haben wollte. (heisst korrekter auch "Toolkit") http://www.gtk.org
befor es GTK und QT gab, gab es z.B. Motif (manche window manager nutzen
das noch)
Mozilla nutz auch teilweise GTK aber mit einer art Sprache namens XUL,
um plattformunabhängiger zu sein.
ganz bestimmte zwecke (3D). Es gibt Diskussionen OpenGL für den Gnome Desktop zu
benutzen, ich denke mal dann wird das irgendwie in GTK angebunden sein.
(genau genommen ist opengl ein standard, kein API)
mit linux hat das alles übrigens nix zu tun (ausser das es viel auf linux läuft).
das einzige "Linux api" ist wohl eher das hier:
http://kernelnewbies.org/documents/kdoc ... elapi.html
das linux kernel API
hilft das alles etwas weiter?
Xlib : http://www.the-labs.com/X11/XLib-Manual/
GTK und QT sind Bilblitheken für GUI Programmierung, beide existieren auch in
versionen für Windows. die xlibs stellen die grundlegenden funktionen der xserver
zur verfügung. das hat mit GUI erstmal so nix zu tun.
GTK+ ist die alte Version von GTK, die neuere heisst GTK2
GTK ist entstanden aus dem Gimp Projekt, weil man damals für Gimp ein neues GUI
haben wollte. (heisst korrekter auch "Toolkit") http://www.gtk.org
befor es GTK und QT gab, gab es z.B. Motif (manche window manager nutzen
das noch)
Mozilla nutz auch teilweise GTK aber mit einer art Sprache namens XUL,
um plattformunabhängiger zu sein.
ehm, was hat das jetzt damit zu tun? naja, opengl ist eine grafik bibliothek fürWorin wird dann z.B. Opengl eingebettet ?
ganz bestimmte zwecke (3D). Es gibt Diskussionen OpenGL für den Gnome Desktop zu
benutzen, ich denke mal dann wird das irgendwie in GTK angebunden sein.
(genau genommen ist opengl ein standard, kein API)
mit linux hat das alles übrigens nix zu tun (ausser das es viel auf linux läuft).
das einzige "Linux api" ist wohl eher das hier:
http://kernelnewbies.org/documents/kdoc ... elapi.html
das linux kernel API
hilft das alles etwas weiter?
Zuletzt geändert von startx am 15.08.2005 18:31:38, insgesamt 1-mal geändert.
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
ich habe das Thema mal nach "Softwareentwicklung" verschoben, ich denke da passt das Thema APIs besser hin.
Zu deiner Frage. Xlib ist quasi die Basis, mit xlib direkt programmiert eigentlich kaum jemand.
Die beiden gängisten Toolkits sind, wie du schon erkannt hast, Qt und Gtk+.
Wenn du Desktopunabhängig programmieren willst, verwenden die meisten wohl Gtk+, du kannst aber auch Qt verwenden. Wichtig ist nur, dass du dann keine KDE oder GNOME libs verwendest, vorallem wenn die Programme später auch unter windows oder MacOS laufen sollen.
OpenGL hat mit dem Toolkit erstmal nichts zu tun. Du kannst OpenGL programme ganz unabhängig davon schreiben, Qt und Gtk+ bieten aber afaik auch ein OpenGL Widget an.
ich habe das Thema mal nach "Softwareentwicklung" verschoben, ich denke da passt das Thema APIs besser hin.
Zu deiner Frage. Xlib ist quasi die Basis, mit xlib direkt programmiert eigentlich kaum jemand.
Die beiden gängisten Toolkits sind, wie du schon erkannt hast, Qt und Gtk+.
Wenn du Desktopunabhängig programmieren willst, verwenden die meisten wohl Gtk+, du kannst aber auch Qt verwenden. Wichtig ist nur, dass du dann keine KDE oder GNOME libs verwendest, vorallem wenn die Programme später auch unter windows oder MacOS laufen sollen.
OpenGL hat mit dem Toolkit erstmal nichts zu tun. Du kannst OpenGL programme ganz unabhängig davon schreiben, Qt und Gtk+ bieten aber afaik auch ein OpenGL Widget an.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
Ja, das war halt aus Unwissenheit.ehm, was hat das jetzt damit zu tun? naja, opengl ist eine grafik bibliothek für
ganz bestimmte zwecke (3D). Es gibt Diskussionen OpenGL für den Gnome Desktop zu benutzen, ich denke mal dann wird das irgendwie in GTK angebunden sein. (genau genommen ist opengl ein standard, kein API)
mit linux hat das alles übrigens nix zu tun (ausser das es viel auf linux läuft).
das einzige "Linux api" ist wohl eher das hier:
http://kernelnewbies.org/documents/kdoc ... elapi.html
das linux kernel API
Stimmt eigentlich. Ja ich neige halt immer dazu, alles was einen Linux-Kernel anbietet mit Linux zu bezeichnen, Windowsdenkfehler.
Ja, ich hatte ja keine Ahnung.hilft das alles etwas weiter?
Hm, wie läuft das dann in einem OpenGl Programm, wenn ich SystemaufrufeOpenGL hat mit dem Toolkit erstmal nichts zu tun. Du kannst OpenGL programme ganz unabhängig davon schreiben, Qt und Gtk+ bieten aber afaik auch ein OpenGL Widget an.
benötige, über xlib ? Also wenn ich z.B. einen 3D-Objekt bewegen möchte mit Tastatur od. Maus ?
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Also die Events kriegst du jeweils über das verwendete GUI-Toolkit rein.eicon hat geschrieben:Hm, wie läuft das dann in einem OpenGl Programm, wenn ich Systemaufrufe
benötige, über xlib ? Also wenn ich z.B. einen 3D-Objekt bewegen möchte mit Tastatur od. Maus ?
z.B. bei Qts OpenGL-Widget gibts signale für
Code: Alles auswählen
mouseDoubleClickEvent ( QMouseEvent * )
mouseMoveEvent ( QMouseEvent * )
mousePressEvent ( QMouseEvent * )
mouseReleaseEvent ( QMouseEvent * )
Mit XLib direkt musst du zu deinem Glück in 99.95% der Fälle nichts machen.
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy