Mange pakker er tilgjengelige i både GTK- og QT-versjoner.

  • Hva er forskjellen mellom dem?
  • Er det noen forskjell i ytelse eller arbeidsmetode?

Svar

Generelt sett skal forskjellen fra et brukerperspektiv være rent kosmetisk. Qt og GTK angir temaer uavhengig av hverandre (via f.eks. qtconfig eller gtk-chtheme) men dette er harmonisert av noen skrivebordsmiljøer.

GNU / Linux har en tendens til å være mer GTK-orientert enn Qt i den forstand at tidligere er mer vanlig, så det kan være lurt å foretrekke det når du får valget; et unntak vil være under KDE, som bruker Qt til sine egne applikasjoner – selv om ingen av disse faktorene er veldig viktig.

A mer viktig problem ville være i sammenhenger med svært begrenset RAM (som i < 1/4 GB); i dette tilfellet vil du sannsynligvis ønske at systemet utelukkende bruker GTK eller Qt, men ikke begge deler. På de fleste moderne stasjonære datamaskiner med gigabyte minne er dette imidlertid ikke noe som bekymrer – å bruke begge deler kan koste deg en ekstra (vill gjetning) 50-100 MB.


Merk at det også finnes forskjellige versjoner av både GTK (2 og 3) og Qt (3 og 4 ) fortsatt mye brukt, men ikke bakoverkompatibel (så et Qt 3-program kan ikke bruke Qt 4-biblioteker). Imidlertid kan begge versjonene eksistere på et system samtidig, og den alvorligste konsekvensen av dette vil være potensialet for forvirring og litt mer minneoppblåsthet.

Kommentarer

  • Jeg vil være ekstremt interessert i å vite hvordan du kommer til den konklusjonen at Linux er mer GTK-orientert? Linux, innebærer vanligvis bare Linux-kjernen som generelt ikke har noen skjevhet med noen av verktøysettene, siden det er en OS-kjerne, ikke et GUI-brukerområdeprogram. Hvis du mente å antyde GNU / Linux som et operativsystem, bestrider jeg fortsatt ‘ d ditt krav. Å si at GNU / Linux er mer GTK-orientert fordi Ubuntu er den mest populære distroen, er som å si Christiano Ronaldo er den beste sportsmannen fordi fotball er det mest spilte spillet i verden. (Jeg ‘ bestrider det også)
  • @darnir I ‘ Jeg setter » GNU » kvalifisering i siden jeg mente operativsystemet i daglig tale. Jeg ‘ Jeg forsvarer avhandlingen min om at det er mer GTK enn Qt orientert: GTK (som opprinnelig sto for » GIMP Tool Kit «, og GIMP = GNU Image Manipulation Program), GIMP og GNOME er alle GNU-prosjekter og en viktig del av deres (brukerland) visjon for et operativsystem , som er parret med kjernen, er hva » linux » historisk sett er. Så GTK ble utviklet primært for linux, det er også native C (vs. Qt ‘ s C ++), mens Qt er mer en virkelig plattform enhet.
  • Selv om jeg er enig med deg om GTKs historie og etymologi, betyr det ikke implisitt at GNU / Linux er GTK-orientert. Det motsatte er faktisk sant og blir bekreftet av uttalelsene dine. GTK ble designet for linux, ikke omvendt. Jeg ‘ Jeg forsvarer avhandlingen min og sier at Linux som en kjerne og GNU / Linux som operativsystem er agnostisk for ethvert GUI Toolkit. GTK blir ofte sett i naturen mer enn Qt på grunn av Ubuntu ‘ s store avhengighet av den. Også det faktum at det er lettere på systemressurser hjelper.
  • @darnir Ja, operativsystemet er egentlig agnostisk WRT GUI toolkit – Jeg vil ikke hevde at GTK er » det opprinnelige » verktøykasse osv. Men du ‘ tar feil når det gjelder » blir ofte sett i naturen mer » – GTK var det mest brukte verktøysettet på plattformen før Ubuntu til og med eksisterte på grunn av det nevnte forholdet til andre grunnleggende deler brukt mye av alle distroer. Dette er grunnen til at de fleste Linux GUI-appene allerede er GTK-apper, og hvorfor det, uten mer sammenheng å fortsette, er fornuftig å fortelle en ny bruker » Du kan like godt velge den «, alt annet er likt. Men det betyr ikke noe.
  • Å bruke flere forskjellige verktøysett vil også kreve mye mer lagring; Jeg tror ikke ‘ dette vil påvirke ytelsen, men bare plass til andre ting.

Svar

Nei, det er ingen forskjell i den interne strukturen til slike programmer. GTK og Qt er verktøygrensesnitt og rammer for brukergrensesnitt. De er biblioteker som utviklerne bruker til å designe grafiske grensesnitt.

Når det skrives et grafisk (GUI) program, blir det først utviklet dets viktigste interner. Det er dette som får programmet til å kjøre. Du ser aldri kjernen, de utfører rett og slett i bakgrunnen. På toppen av denne kjernen er et brukergrensesnitt (UI) designet.

Nå kan utviklerne designe hele grensesnittet fra bunnen av, eller gjenbruke design laget av andre. Gjenbruk av design har en stor fordel. Det lar alle programmene på datamaskinen din se ut. Derfor bruker de GUI-verktøysett. GTK og Qt er to ekstremt vanlige GUI-verktøysett.

GTK er standardverktøysettet for GNOME mens Qt brukes av KDE. Fra brukerens synspunkt er det bare utseendet som avviker. Programmet forblir det samme i hjertet.

Svar

Et annet viktig aspekt å vurdere er Qt-lisensiering lenke til lisensinformasjonen deres , som eksplisitt er satt til å være fritt tilgjengelig for de fleste ideelle prosjekter, men et kommersielt forhold er mulig og kan ha begrensninger for den saken. Mens GTK, uttrykkelig sier at det kan brukes fritt selv i proprietære applikasjoner GTK-uttalelse :

Are there any licensing restrictions? GTK is free software and part of the GNU Project. However, the licensing terms for GTK, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties. 

Et sentralt aspekt av kompleks GUI-utvikling vil stole på GLADE som et designsett og om det passer din tilnærming gladekobling . Det tar sikte på å være tverrplattform, men det er ikke sikkert at den støttes tverrplattform som Qt er.

Svar

Hvordan sammenligner de seg så langt som deres respektive objektmodeller, og hvor nøye følger de C ++ -standarden – i min begrensede erfaring så QT ut til å være litt hacky med kodegeneratorene og gjenoppfinne hjulet med sine egne funksjonelt like klasser for strenger og klasser. Kort sagt så QT ut til å ha flere fløyter og bjeller, noe jeg sikkert er mange funnet nyttig, men det syntes også å ha en tung, proprietær følelse av det. Som sagt hadde jeg begrenset erfaring med det (og enda mindre med Gtk). Jeg vil gjerne ha noen meninger om hvordan de sammenlignes i dag – fra utviklerens perspektiv, som lener seg mot generiske tilnærminger til ting som prøver å bruke C ++ standarder (som STL, C ++ strenger, tråder osv.)

Kommentarer

  • Dette høres veldig ut som personlig mening, ikke et faktabasert svar som ‘ forventes på de fleste SE-nettsteder. Legg også merke til at ting som QString ble født av nødvendighet for flere tiår siden da det ikke var noen like funksjoner i STL. Nå som moderne C ++ -standarder har plukket opp de fleste funksjonene, er mange Qt-klasser bare tynne omslag rundt de opprinnelige C ++ -løsningene.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *