5Aug
De visuele verschillen tussen de GNOME- en KDE-bureaubladomgevingen zijn gemakkelijk te zien, dus hoe is het mogelijk om een app zonder problemen van de ene onder de andere uit te voeren? De SuperUser van vandaag Q & Een bericht heeft het antwoord.
De vraag van vandaag &Antwoord sessie komt naar ons met dank aan SuperUser-een onderverdeling van Stack Exchange, een community-gestuurde groepering van Q & A-websites.
'Shaking Hands' clipart met dank aan Clker.com.
De vraag
SuperUser-lezer LeNoob wil weten hoe KDE-apps kunnen worden uitgevoerd onder GNOME:
Als GNOME GTK + gebruikt en KDE Qt gebruikt, hoe kunnen KDE-toepassingen dan onder GNOME worden uitgevoerd?
Wat maakt het mogelijk dat KDE-apps soepel werken onder GNOME?
Het antwoord
SuperUser contributor grawity heeft het antwoord voor ons:
Dit is mogelijk omdat deze desktopomgevingen hetzelfde grafische systeem gebruiken, X11.Alle grafische programma's spreken alleen het X11-protocol met een X-server( meestal Xorg), sturen commando's om dit of dat te tekenen en ontvangen invoergebeurtenissen( muis, toetsenbord, etc.).
Elke UI-toolkit zoals GTK of Qt wordt aangeboden in de vorm van bibliotheken waarnaar het grafische programma linkt. Een programma geschreven voor GNOME gebruikt libgdk en libgtk , en een KDE-programma zal libQtCore gebruiken met libQtGui .Beide toolkits gebruiken dan eenvoudig dezelfde X11-functies om alles in het venster van het respectievelijke programma te tekenen.
De meeste moderne toolkits, zoals GTK, Qt of EFL, voeren alle tekeningen zelf uit en sturen gewoon de voltooide afbeelding van het hele venster over X11.Oudere toolkits zoals Xaw of Motif sturen in plaats daarvan opdrachten om primitieven zoals lijnen of rechthoeken te tekenen en de X-server geeft alle rendering.
Het X11-protocol dekt ook vensterbeheer, zodat elke desktopomgeving een "vensterbeheerprogramma" heeft dat raamframes tekent( "decoraties"), u vensters kunt verplaatsen en vergroten / verkleinen, enzovoort. Moderne 'compositing'-vensterbeheerders nemen Xorg's taak over, namelijk het samenstellen van alle vensters op het uiteindelijke schermbeeld, waardoor dingen zoals schaduwen of effecten kunnen worden toegevoegd.
Het aansluiten van hetzelfde grafische systeem voor eenvoudige "compatibiliteit" is iets geweldigs, en geweldig wanneer u al uw favoriete apps onder dezelfde desktopomgeving wilt laten werken!
Heeft u iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk de volledige discussiethread hier.