Grundsätzliches: wxWidgets, GTK, X11, WinAPI ??? - verwirrt



  • Hallo,

    ich möchte gern Cross-platform-GUI-Programme schreiben und möchte mir zu diesem Zwecke wxWidgets installieren.
    Ich weis jetzt aber nicht welches Paket ich unter Linux (Ubuntu) installieren soll?: wxGTK oder wxX11 ???

    Unter Windows ist die ganze Strukturierung ja recht klar: da ist die Win-API als grundsätzliche Basis und dann gibt es viele Libs die auf dieser aufsetzen, wie z.B. MFC, Qt oder eben wxWidgets.

    Ich dachte eigentlich, dass das entsprechende Gegenstück zur Win-API unter Linux X11 ist. Aber wozu gibt es denn eine Version für GTK. Ich dachte GTK wäre eine konkurrierende Library zu wxWidgets? Gibt es Linux-Systeme die auf GTK basieren ohne auf X11 zu basieren?

    Wenn nein, wozu dann überhaupt wxGTK? Kann man doch gleich alles auf X11 aufbauen, da GTK (zu mindest meiner Vorstellung nach) ja auch darauf aufbaut? Ich hätte also sinnloser Weise noch eine Lib dazwischen, was alles doch recht langsam und aufgebläht machen müsste , oder nicht?

    Also wie sind die grundsätzlichen Zusammenhänge in der Linux-GUI-Welt?



  • X11 kümmert sich nur um Grafik und Fenster. Es hat also keine Funktionen für Buttons, etc. Deswegen gibt es zwei große GUI Toolkits für Linux: GTK und Qt. Da Qt anfangs nicht unter der GPL stand hat man GTK ins Leben gerufen. Beide benutzen X11 um zu zeichnen und Fenster zu erstellen. wxX11 sieht glaub ich auch entsprechend schlecht aus (am besten nicht verwenden). wxGTK ist das was du suchst (Ubuntu).
    GTK für Windows ist genauso wie die Linux Version, nur sie verwendet Windows Funktion zum Fenster erstellen und zeichnen, allerdings nicht WinAPI für Buttons und so (weil das zu kompliziert wäre, UTF-8 etc.).



  • Ja, kann man auch an den Screenshots sehen:
    wxX11: http://wxcode.sourceforge.net/screenshots/extminiframe/x11.png
    wxWin32: http://wxcode.sourceforge.net/screenshots/extminiframe/winxp.png
    wxGTK: http://wxcode.sourceforge.net/screenshots/extminiframe/gtk.png

    Wobei es zum Programmieren erstmal _fast_ egal ist, ob man wxGTK oder wxX11 nimmt, da die wx-API die gleiche ist. Beim Deploy wird es aber entscheidend sein, was der User sieht.



  • Vielen Dank, fuer die Antworten, jetzt ist alles etwas klarer.
    Was heisst Deploy?
    Kann ich auch wxGTK und wxX11 parallel installieren?
    Wenn ich nun mit wxGTK kompiliere und mein Programm in KDE laufen lassen will, benoetige ich dann irgendwelche GTK-dlls unter KDE? Wie sieht's mit anderen Windowmanagern aus, z.B. Fluxbox?



  • katana. schrieb:

    Vielen Dank, fuer die Antworten, jetzt ist alles etwas klarer.
    Was heisst Deploy?

    http://dict.tu-chemnitz.de/dings.cgi?lang...

    katana. schrieb:

    Kann ich auch wxGTK und wxX11 parallel installieren?

    Sollte gehen. Die .SO-Dateien sollten verschieden heißen. Dann sollte das gehen.

    katana. schrieb:

    Wenn ich nun mit wxGTK kompiliere und mein Programm in KDE laufen lassen will, benoetige ich dann irgendwelche GTK-dlls unter KDE?

    Ja, dann brauchst du die GTK+ .SO-Dateien.

    katana. schrieb:

    Wie sieht's mit anderen Windowmanagern aus, z.B. Fluxbox?

    Der Fenstermanager ist von der GUI-Library unabhängig. Beides hängt nur von X11 ab. D.h. die Programme laufen, aber die Bibliotheken (GTK+) werden benötigt.


Anmelden zum Antworten