Gtk und Qt - Verständnisfrage

  • Gestern habe ich ein bisschen über Gnome und KDE gelesen und dass Gnome eigentlich daraus entsanden ist, weil KDE QT nicht rein Opensource ist. Ich hoffe ich beschreibe es richtig. Ich habe null vertieft Ahnung was genau der Unterschied ist zwischen Gtk und Qt. Gnome ist Gtk und KDE Qt. Die Desktops haben ja quasi ihre eigenen Prgrämmchen und Helferlein und ich nehme an, dass das Ganze Gtk und Qt bezogen auf das Desktopenviroment. Wie ist denn das in den Repos und den Anwendungen, diese sind ja wahrscheinlich auch Gtk oder Qt? Muss man wenn man Gnome oder KDE benutzt sich an Gtk oder Qt orientieren da sich das vielleicht mit dem Desktopenviroment nicht so gut vertrögt? oder bezieht sich das eher das sich die Anwendung wegen dem Aussehen nicht schon integriert? Ich kann ja Gimp zum Beispiel egal Gnome doer KDE installieren. Also könnte man sagen, die Anwendungen aus den Repos kommt es nicht darauf an welches Desktopenviroment, aber besser nicht nicht sich den KDE zum Beispiel https://apps.kde.org/de/kbackup/ mit einem Gnome Desktop benutzen? Gibt as da eine Richtschnur wie man richtig damit umgeht?

  • Wenn dir der Platzverbrauch und das unterschiedliche Aussehen egal sind kannst du beliebig Gnome und GTK Anwendungen mischen. Ich würde hier aber noch mal unterscheiden. Gtk und Qt sind die Software Bibliotheken auf denen Gnome bzw. KDE basieren. Damit lassen sich dann Programme mit entsprechender grafischer Oberfläche programmieren, die zwar von Gtk bzw. Qt abhängen, nicht aber von Gnome oder KDE. Solche im anderen Ökosystem zu nutzen finde ich überhaupt kein Problem (mich stört ein evtl. unterschiedliches Aussehen z.B. der Bedienelemente dabei nicht). Das ist auch normalerweise kein Problem mit dem Platzverbrauch (GIMP in KDE ist so ein Beispiel).

    Nun haben aber sowohl Gnome als auch KDE in ihrem jeweiligen Ökosystem wiederum Bibliotheken entwickelt, die sehr spezifisch für ihre Umgebung sind und meist viele Abhängigkeiten zu anderen Gnome / KDE Bibliotheken nach sich ziehen. Hiermit lassen sich dann Programme schreiben, die sehr gezielt auf das jeweilige Ökosystem zugeschnitten sind. Wenn du ein solches Programm im anderen System installieren willst geht das zwar, aber es müssen meist sehr viele fehlende Libraries (Bibliotheken), auf denen das Programm basiert, nachgezogen werden. Du bindest damit oft den größten Teil des anderen Ökosystems mit ein (Dateibrowser sind so ein Beispiel). Die funktionieren auch nur gut, wenn die darunter liegenden Dienste der Gnome bzw. KDE Oberfläche laufen.

    Beim zuletzt beschriebenen Fall ziehe ich die Grenze. Ich würde gerne den Konqueror in Mint benutzen weil er Annehmlichkeiten hat, die mir Caja nicht bietet. Aus obigem Grund verzichte ich da aber drauf.

    So, ich hoffe, ich habe es einigermaßen richtig erklärt.

    Linux Mint Mate auf ASUS Zenbook Flip UX360U; Armbian auf Banana Pi

  • Sehr vereinfach:

    QT und GTK sind beides Bibliotheken für Grafische Software. Wenn du eine Anwendung entwickelst und du brauchst einen Button kannst du den halt komplett selber gestalten und programmieren. Oder du nutzt QT oder GTK als Bibliothek und sagst "addButton()" und der Button ist da.

    Solche GUI-Frameworks sind völlig normal. Microsoft bietet sowas auch für Windows an und Apple auch für MacOS und iPhones, Google für Android, etc.

    Die Idee ist dass diese Framework so Standard Zeugs - das so gut wie alle Programme brauchen - wie eben "Fenster", "Buttons", "TextBox (wo man was reinschrieben kann), etc nicht jeder Software-Entwickler immer und immer wieder neu Programmieren muss sondern einfach aus einer Bibliothek nimmt - und dann spannende Sachen programmieren kann.

    Da GTK und QT eben definieren wie z.B. ein Button aussieht wird das für Linux bei Themes relevant. QT-Anwendungen funktionieren zwar unter Gnome - sehen aber halt nicht wie die Gnome Anwendungen aus - sondern wie ein Fremdkörper. Genau so ist es mit GTK Anwendungen unter KDE - die sehen dort auch wie ein Fremdkörper aus.

    Als Beispiel hier ein Gnom Desktop mit Gnome Programmen, die haben alle das selbe Look & Feel mit breitet Titelleiste wo auch direkt Buttons, etc integriert sind und es weitere Menüs gibt.

    Hier nun der selbe Desktop mit einem QT Programm, das Programm funktioniert einwandfrei - aber sieht halt wie ein Fremdkörper aus

    Fensterliste mit Schliessen / Maxiemieren udn Minimieren Icons sehen falsch aus eher wie bei Windows - auch sind dort keine weiteren Menüs in der Leiste integriert. Darunter gibt es eine Menüliste "Datei, Bearbeiten, etc" die gibt es bei GTK z.b. nicht.

    Die Icons passen nicht usw.

  • Nun haben aber sowohl Gnome als auch KDE in ihrem jeweiligen Ökosystem wiederum Bibliotheken entwickelt, die sehr spezifisch für ihre Umgebung sind und meist viele Abhängigkeiten zu anderen Gnome / KDE Bibliotheken nach sich ziehen. Hiermit lassen sich dann Programme schreiben, die sehr gezielt auf das jeweilige Ökosystem zugeschnitten sind. Wenn du ein solches Programm im anderen System installieren willst geht das zwar, aber es müssen meist sehr viele fehlende Libraries (Bibliotheken), auf denen das Programm basiert, nachgezogen werden.

    Ja genau, du konntest formulieren was ich fragen wollte, mir war die Unterscheidung nicht ganz klar. Diese nahen Ökosystem spezifischen Anwendungen, ich dachte dann, dass sich das allgemein weiter zieht in die Anwendungen der Repos. Obwohl ich ja schon beide Desktops und Anwendungen ohne Proleme installiert habe, hat es mich etwas verwirrt. Jedoch muss man unterscheiden zwischen spezifisch Ökosystem und oder Gtk oder Qt Anwendungen die ohne Probleme auf Gnome oder KDE laufen. Kann man eigentlich sagen, dass viel mehr Anwendungen Gtk und nicht Qt geschrieben? War Gtk schon vor Gnome existent? Ich glaube gelesen zu haben das läuft auch auf Windows wenn man es anpasst.

    Edited once, last by Shotodude (January 15, 2025 at 1:25 PM).

  • Sowohl QT wie auch GTK gibt es für Windows und Mac OS.

    GTK war ursprünglich ein Projekt von Gimp. Die die Bibliothek für Gimp geschrieben haben. Gnome hat das genommen und dann weiterentwickelt.

    Im Linux Ökosystem findest du tatsächlich mehr GTK Apps als QT Apps.

    Was daran liegt das Gnome der verbreiteste Desktop ist bzw im Enterprise/Firmenumfeld nur Gnome existiert.

    Und auch weil es insgesamt mehr Desktops gibt die auf GTK basieren (Gnome, Cinnamon, Mate, Lxde) als auf QT.

  • Im Linux Ökosystem findest du tatsächlich mehr GTK Apps als QT Apps.

    Die Zahlen wären hier sicherlich spannend :P

    Eine Übersicht der vom KDE Projekt eigenen Programm sieht man hier:

    KDE-Anwendungen
    KDE ist eine Gemeinschaft von freundlichen Menschen, die über 200 Anwendungen erstellen, die auf jeder Linux-Arbeitsfläche laufen und oft auch auf anderen…
    apps.kde.org


    Darüber hinaus gibts aber auch noch andere Programme, die in QT entwickelt wurden.
    Manche wenige Programme werden auch für GTK UND für QT zur Verfügung gestellt.

  • Kein fairer Vergleich: Aber wenn ich bei Flathub nach "gtk" suche bekomme ich 170 Ergebnisse, bei QT bekomme ich 111.

    Aber auch die Browser Firefox und alles was Chromium basiert ist nutzt ja ein "GTK Frontend". Oder auch alles was Electron basiert ist nutzt für den öffnen/speichern Dialog die GTK Tools 🤷‍♂️

  • Besten Dank für die ausführliche Beschreibung. Jetzt ist es mir viel klarer. :thumbup::)

  • Kein fairer Vergleich: Aber wenn ich bei Flathub nach "gtk" suche bekomme ich 170 Ergebnisse, bei QT bekomme ich 111.

    Aber auch die Browser Firefox und alles was Chromium basiert ist nutzt ja ein "GTK Frontend". Oder auch alles was Electron basiert ist nutzt für den öffnen/speichern Dialog die GTK Tools 🤷‍♂️

    Bei MX Linux Xfce fand ich manchmal die Sache mit den Fenstern und Buttons etwas durcheinander.

  • Bei MX Linux Xfce fand ich manchmal die Sache mit den Fenstern und Buttons etwas durcheinander.

    Es war vor ein paar Jahren sehr viel schwerer, ein einheitliches Design zu schaffen für die verschiedenen Anwendungen.
    Unter KDE kann man übrigens mittlerweile direkt in den Systemeinstellungen den Anwendungs-Stil für GTK Programme einstellen:

  • Unter KDE kann man übrigens mittlerweile direkt in den Systemeinstellungen den Anwendungs-Stil für GTK Programme einstellen:

    Das aber keine Auswirkungen mehr auf GTK4/libadwaita Apps hat.

  • In der Wiki steht Gtk in C geschrieben und Qt C++. Kann man sagen, dass unterschiedliche GUI`s unterschiedliche Sprachen voraussetzen beziehungsweise aus einer diesen Sprachen wurde die GUI Gtk und Qt entwickelt.

    Wie ist das denn mit Programm selbst, also die Funktion was es macht, ist auch in diesem Fall mit C oder C++ geschriben? Oder gibt es Prgrammsprachen die eine Anwendung in der reinen Funktion was es tun soll und darüber wird nochmals zusätzlich eine andere Sprache benutzt um quasi eine GUI für Klicki Userinterface?

  • Sowohl GTK wie QT haben viele Anbindungen an sehr viele Sprachen.

    Du kannst GTK Apps in C++, JavaScript, Rust, Go, Vala, etc schreiben.

    Eine genaue Liste findet man hier: https://www.gtk.org/docs/language-bindings/index

    QT kann auch mehrere Programmiersprachen bin da aber weniger bewandert da ich mich mit GTK viel besser auskenne.

  • DenalB January 15, 2025 at 2:02 PM

    Changed the title of the thread from “Gtk und Qt Verständniss Frage” to “Gtk und Qt - Verständnisfrage”.
  • weil KDE QT nicht rein Opensource ist.

    Heißt dass, das der betrofende Code unter einen nicht komplett freien Lizenz stehen aber trotzdem offen lesbar ist indem sinne das der Code überprüft werden kann oder heißt es das der betroffene Code eine Blackbox ist?

  • Der Code ist frei einsehbar und (vereinfacht gesagt) für Open Source Projekte frei benutzbar, für unfreie Software muss man aber Zahlen. Desshalb gibt es Qt unter 2 unterschiedliche Lizenzen. Siehe Antwort #3.

    Linux Mint Mate auf ASUS Zenbook Flip UX360U; Armbian auf Banana Pi

  • QT war Anfangs, als KDE ursprünglich entwickelt wurde (wir sprechen hier von KDE 1 irgendwann in der 90er) nicht OpenSource. Matthias Ettrich der Gründer von KDE hat QT benutzt weil er damit halt schon Erfahrung hatte.

    Das war im Grunde auch der Grund warum dann Gnome gestartet wurde, weil man reines OpenSource Desktop Projekt haben wollte.

    Inzwischen sind aber viele Jahre vergangen und viel hat sich verändert.

    QT gibt es nun seit einiger Zeit in einer "Community Edition" die unter der GPL lizenziert ist und unter unfreien Editionen die nicht unter der GPL sind. Man sieht das sehr gut hier: https://www.qt.io/qt-licensing

    Daher ein KDE Plasma und die KDE Apps sind seit vielen Jahren (Jahrzehnten) bereits 100% OpenSource und frei.

  • Der Code ist frei einsehbar und (vereinfacht gesagt) für Open Source Projekte frei benutzbar, für unfreie Software muss man aber Zahlen. Desshalb gibt es Qt unter 2 unterschiedliche Lizenzen. Siehe Antwort #3.

    Achso danke für die Erklärung.

    Das ist doch eine sehr gute Lösung

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!