Mange pakker er tilgængelige i både GTK- og QT-versioner.
- Hvad er forskellen mellem dem?
- Er der nogen forskel i ydeevne eller arbejdsmetode?
Svar
Generelt skal forskellen fra et brugerperspektiv være rent kosmetisk. Qt og GTK indstiller temaer uafhængigt (via f.eks. qtconfig
eller gtk-chtheme
) men dette er harmoniseret af nogle desktop-miljøer.
GNU / Linux har tendens til at være mere GTK-orienteret end Qt i den forstand, at den tidligere er mere almindeligt brugt, så du vil måske foretrække det, når du får valget. En undtagelse ville være under KDE, som bruger Qt til sine egne applikationer – selvom ingen af disse faktorer er meget vigtige.
A mere vigtigt problem ville være i sammenhænge med meget begrænset RAM (som i, < 1/4 GB); i dette tilfælde vil du sandsynligvis have systemet til udelukkende at bruge GTK eller Qt, men ikke begge dele. På de fleste moderne desktops med gigabyte hukommelse er dette dog ikke et problem – at bruge begge udstrakt kan koste dig et ekstra (vildt gætte) 50-100 MB.
Bemærk, at der også er forskellige versioner af både GTK (2 og 3) og Qt (3 og 4 ) stadig meget brugt, men ikke bagudkompatibel (så et Qt 3-program kan ikke bruge Qt 4-biblioteker). Begge versioner kan dog eksistere på et system på samme tid, og den mest alvorlige konsekvens af dette ville være potentialet for forvirring og lidt mere hukommelsesopblødning.
Kommentarer
- Jeg ville være meget interesseret i at vide, hvordan du kommer til den konklusion, at Linux er mere GTK-orienteret? Linux indebærer typisk kun Linux-kernen, som generelt ikke har nogen skævhed over for nogen af værktøjssættene, da det er en OS-kerne, ikke et GUI-brugerområdet. Hvis du mente at antyde GNU / Linux som et operativsystem, bestrider jeg stadig ‘ dit krav. At sige, at GNU / Linux er mere GTK-orienteret, fordi Ubuntu er den mest populære distro, er som at sige Christiano Ronaldo er den bedste sportsmand, fordi fodbold er det mest spillede spil i verden. (Jeg ‘ bestrider det også)
- @darnir I ‘ Jeg sætter ” GNU ” kvalifikation, da jeg mente operativsystemet i daglig tale. Jeg ‘ Jeg forsvarer min afhandling, at det er mere GTK end Qt orienteret: GTK (som oprindeligt stod for ” GIMP Tool Kit ” og GIMP = GNU Image Manipulation Program), GIMP og GNOME er alle GNU-projekter og en kerne del af deres (brugerland) vision for et operativsystem , som parret med kernen er, hvad ” linux ” historisk set er. Så GTK blev udviklet primært til linux, det er også native C (vs. Qt ‘ s C ++), mens Qt mere er en ægte cross-platform enhed.
- Selvom jeg er enig med dig i GTKs historie og etymologi, betyder det ikke implicit, at GNU / Linux er GTK-orienteret. Faktisk er det modsatte tilfældet og bekræftes af dine udsagn. GTK blev designet til linux, ikke omvendt. Jeg ‘ Jeg forsvarer min afhandling med angivelse af, at Linux som en kerne og GNU / Linux som operativsystem er agnostisk over for ethvert GUI-værktøjssæt. GTK ses ofte i naturen mere end Qt på grund af Ubuntu ‘ s store afhængighed af det. Også det faktum, at det er lettere på systemressourcerne, hjælper.
- @darnir Ja, operativsystemet er i det væsentlige agnostisk WRT GUI-værktøjssættet – Jeg vil ikke hævde, at GTK er ” den indfødte ” værktøjskasse osv. Men du ‘ tager fejl af, hvorfor den ” ses ofte i naturen mere ” – GTK var det mest anvendte værktøjssæt på platformen før Ubuntu selv eksisterede på grund af det førnævnte forhold til andre grundlæggende dele, der anvendes i vid udstrækning af alle distroer. Dette er grunden til, at de fleste Linux GUI-apps allerede er GTK-apps, og hvorfor det uden mening at fortsætte er fornuftigt at fortælle en ny bruger ” Dig kan lige så godt vælge den ene “, alt andet lige. Men det betyder ikke rigtig noget.
- Brug af flere forskellige værktøjssæt ville også kræve meget mere lagerplads; Jeg tror ikke ‘ dette ville påvirke performance, men kun plads til andre ting.
Svar
Nej, der er ingen forskel i den interne struktur af sådanne programmer. GTK og Qt er værktøjssæt og rammer til brugergrænseflader. De er biblioteker, som udviklerne bruger til at designe grafiske grænseflader.
Når der skrives et grafisk (GUI) program, udvikles dets centrale interner først. Det er det, der får programmet til at køre. Du ser aldrig kernen, de udføres simpelthen i baggrunden. Oven på denne kerne er der designet en brugergrænseflade (UI).
Nu kunne udviklerne designe den komplette grænseflade fra bunden eller genbruge designs lavet af andre. Genbrug af design har en stor fordel. Det gør det muligt for alle programmerne på din computer at se ens ud. Derfor bruger de GUI-værktøjssæt. GTK og Qt er to meget almindelige GUI-værktøjssæt.
GTK er standardværktøjssættet til GNOME, mens Qt bruges af KDE. Fra brugerens synspunkt er det bare det udseende, der adskiller sig. Programmet forbliver det samme i hjertet.
Svar
Et andet vigtigt aspekt, der skal tages i betragtning, er Qt-licensen link til deres licensoplysning , som udtrykkeligt er indstillet til at være frit tilgængelige for de fleste nonprofitprojekter, men et kommercielt forhold er muligt og kan have begrænsninger i den sag. Mens GTK udtrykkeligt angiver, at det kan bruges frit selv i proprietære applikationer GTK-sætning :
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 centralt aspekt af kompleks GUI-udvikling vil stole på GLADE som et designsæt, og om det passer til din tilgang glade link . Det sigter mod at være på tværs af platforme, men understøttes muligvis ikke så bredt på tværs af platforme som Qt er.
Svar
Hvordan sammenligner de sig så langt som deres respektive objektmodeller, og hvor tæt følger de C ++ -standarden – i min begrænsede erfaring syntes QT at være lidt hacky med sine kodegeneratorer og genopfinde hjulet med deres egne funktionelt ækvivalente klasser til strenge og klasser. Kort sagt syntes QT at have flere fløjter og klokker, som jeg sikkert er mange fundet nyttigt, men det syntes også at have en tung, proprietær fornemmelse for det. Som jeg havde, havde jeg begrænset erfaring med det (og endnu mindre med Gtk). Jeg vil gerne have nogle meninger om, hvordan de sammenlignes i dag – set fra en udviklers perspektiv, der læner sig mod generiske tilgange til ting, der forsøger at bruge C ++ – standarder (som STL, C ++ – strenge, tråde osv.)
QString
blev født af nødvendighed for årtier siden, da der ikke var nogen tilsvarende funktioner i STL. Nu hvor moderne C ++ -standarder har hentet de fleste af funktionerne, er mange Qt-klasser bare tynde indpakninger omkring de oprindelige C ++ -løsninger.