Ich habe mal ein paar allgemeine Fragen zu den GUI-Toolkits bei Linux.
(Das Toolkit ist eine Softwarebibliothek und malt/rendert die Buttons, Eingabefelder usw.)
1. GTK ist das GUI-Toolkit von Gnome und Qt ist das GUI-Toolkit von KDE. Was verwenden XFCE, Cinnamon oder MATE?
2. Ich habe KDE und kann auch GTK-Programmer wie z.B. gnome-disks installieren und ausführen. Werden die GTK-Befehle in Qt übersetzt oder zeichnet die GTK-Bibliothek auch unter KDE einfach alles selbst?
3. Wenn ich ein Qt-Programm unter Gnome ausführen, wird dann alles in GTK-Befehle übersetzt oder zeichnet Qt einfach alles selbst?
Allgemeine Frage zu GUI-Toolkits bei Linux
Re: Allgemeine Frage zu GUI-Toolkits bei Linux
Weder noch. Früher lag unter GTK und Qt die libX11, heute ist es Wayland, wobei X11 nach wie vor unterstützt wird. Da sowohl X11 als auch Wayland nur wenige Graphikprimitive wie Punkt und Linie Zeichnen oder Fläche füllen beherrschen, bauen Widgettoolkits wie Qt, GTK, Motif, Athenawidgets auf den Lowlevelbibliotheken auf und stellen dem Programmierer Dinge wie Buttons, Menüs... zur Verfügung, die man sonst selbst mit Linien, Punkten etc. realisieren müßte. Auch Schrift wird letztlich in Punkte und Linien zerlegt und gezeichnet.DaCoda hat geschrieben:21.05.2023 18:33:36Werden die GTK-Befehle in Qt übersetzt oder zeichnet die GTK-Bibliothek auch unter KDE einfach alles selbst?
Qt reicht also alles via libX11 and den Xserver durch, genauso machen es GTK, Motif, Athena... Das ist auch der Grund, warum alle X11-basiertten Programme parallel nebeneinander existieren und laufen können. OK, inzwischen wird libX11 mehr und mehr durch Wayland ersetzt, das wird aber bisher nur von GTK und Qt unterstützt.
XFCE, Cinnamon, LXDE oder MATE setzen auf GTK auf.
Re: Allgemeine Frage zu GUI-Toolkits bei Linux
@MSFree Danke für die Aufklärung.
Ich denke X11 bzw. Wayland stellen einen OpenGL-Context bereit, auf dem die GUI-Toolkits dann mittels OpenGL-Calls zeichnen?
Ich denke X11 bzw. Wayland stellen einen OpenGL-Context bereit, auf dem die GUI-Toolkits dann mittels OpenGL-Calls zeichnen?
Re: Allgemeine Frage zu GUI-Toolkits bei Linux
OpenGL ist ein ganz anderes Thema, das exisitert praktisch parallel zu X11.DaCoda hat geschrieben:21.05.2023 20:21:57Ich denke X11 bzw. Wayland stellen einen OpenGL-Context bereit, auf dem die GUI-Toolkits dann mittels OpenGL-Calls zeichnen?
X11 stellt nur zweidimensionale, pixelorientierte Zeichenprimitive zur Verfügung. Wayland vereinigt zwar zu einem gewissen Teil 2D und 3D, unterscheidet aber genauso wie X11 zwischen 2D und 3D.
OpenGL stellt einen 3D-Raum zur Verfügung und entsprechende, in Hardware implementierte Methoden, 3D-Zeichenprimitive auf eine zweidimensionale Pixelebene zu projizieren. OpenGL kümmert sich darum, die projizierten Pixel auf den Framebuffer der Graphikkarte zu bringen. X11 hat hier kaum noch einen Einfluß, ausser Tastatur- und Mausereignisse, die in dem 2D-Rahmen stattfinden, an das ausführende Programm zu liefern.