Multe pachete sunt disponibile atât în versiunile GTK, cât și în versiunile QT.
- Care este diferența dintre ele?
- Există vreo diferență în ceea ce privește performanța sau metoda de lucru?
Răspuns
În general, diferența din perspectiva utilizatorului ar trebui să fie pur cosmetică. Qt și GTK stabilesc teme independent (prin, de exemplu, qtconfig
sau gtk-chtheme
), dar acest lucru este armonizat de unele medii desktop.
GNU / Linux tinde să fie mai mult orientat GTK decât Qt în sensul că primul este mai frecvent utilizat, deci poate doriți să îl preferați atunci când vi se oferă alegerea; o excepție ar fi în KDE, care folosește Qt pentru propriile aplicații – deși niciunul dintre acești factori nu este foarte important.
A o problemă mai semnificativă ar fi în contexte cu RAM foarte limitată (ca în, < 1/4 GB); în acest caz, probabil că doriți ca sistemul să utilizeze exclusiv GTK sau Qt, dar nu ambele. Cu toate acestea, pe majoritatea desktopurilor moderne cu gigaocteți de memorie, acest lucru nu este o preocupare – utilizarea ambelor pe scară largă vă poate costa 50-100 MB (ghicitoare).
Rețineți că există, de asemenea, diferite versiuni atât ale GTK (2 și 3), cât și ale Qt (3 și 4) ) încă utilizat pe scară largă, dar nu este compatibil cu versiunile anterioare (deci o aplicație Qt 3 nu poate utiliza bibliotecile Qt 4). Cu toate acestea, ambele versiuni pot exista pe un sistem în același timp și cea mai gravă consecință a acestui fapt ar fi potențialul de confuzie și un pic mai multă umflare a memoriei.
Comentarii
- Aș fi extrem de interesat să aflu cum ajungeți la concluzia că Linux este mai orientat spre GTK? Linux, implică de obicei doar nucleul Linux care, în general, nu are părtinire față de niciunul dintre seturile de instrumente, deoarece este un nucleu OS, nu un program de spațiu utilizator GUI. Dacă intenționați să implicați GNU / Linux ca sistem de operare, eu ‘ încă vă contest reclamația. A spune că GNU / Linux este mai orientat spre GTK deoarece Ubuntu este cea mai populară distribuție este ca și cum ai spune că Christiano Ronaldo este cel mai bun sportiv, deoarece fotbalul este cel mai jucat joc din lume. (Am ‘ contestat și asta)
- @darnir Am ‘ voi pune ” GNU ” calificativ în, de vreme ce mă refeream la sistemul de operare în sens colocvial. ‘ îmi voi susține teza că este mai mult GTK decât Qt orientat: GTK (care inițial reprezenta ” GIMP Tool Kit ” și GIMP = Programul de manipulare a imaginii GNU), GIMP și GNOME sunt toate proiecte GNU și o parte centrală a viziunii lor (userland) pentru un sistem de operare , care este asociat cu nucleul este ceea ce este ” linux ” istoric. Deci, GTK a fost dezvoltat în primul rând pentru Linux, este, de asemenea, nativ C (vs. Qt ‘ s C ++), în timp ce Qt este mai mult o platformă cu adevărat entitate.
- Deși voi fi de acord cu dvs. despre istoria și etimologia GTK, acest lucru nu implică implicit faptul că GNU / Linux este orientat spre GTK. De fapt, opusul este adevărat și este confirmat de declarațiile dvs. GTK a fost conceput pentru Linux, nu invers. ‘ mi-am apărat teza afirmând că Linux ca nucleu și GNU / Linux ca sistem de operare sunt agnostici față de orice set de instrumente GUI. GTK este adesea văzut în sălbăticie mai mult decât Qt din cauza dependenței puternice de Ubuntu ‘. De asemenea, faptul că este mai ușor în ceea ce privește resursele sistemului ajută.
- @darnir Da, sistemul de operare este în esență agnostic. div> setul de instrumente nativ ” etc. Dar ‘ greșești de ce ” este adesea văzut în sălbăticie mai ” – GTK a fost cel mai utilizat set de instrumente pe platformă înainte ca Ubuntu să existe chiar din cauza relației menționate anterior cu alte părți fundamentale utilizate pe scară largă de toate distribuțiile. Acesta este motivul pentru care majoritatea aplicațiilor GUI Linux sunt deja aplicații GTK și de ce, fără mai mult context, este logic să spui unui nou utilizator ” ar putea alege la fel de bine ca „, toate celelalte fiind egale. Dar nu contează cu adevărat.
- Utilizarea mai multor seturi de instrumente diferite ar necesita, de asemenea, mult mai mult spațiu de stocare; Nu ‘ nu cred că acest lucru ar avea impact asupra performanței, însă, doar spațiul pentru alte lucruri.
Răspuns
Nu, nu există nicio diferență în structura internă a acestor programe. GTK și Qt sunt seturi de instrumente și cadre de interfață cu utilizatorul. Sunt biblioteci pe care dezvoltatorii le folosesc pentru a proiecta interfețe grafice.
Când se scrie un program grafic (GUI), sunt dezvoltate mai întâi elementele sale interne de bază. Acesta este ceea ce face ca programul să ruleze. Nu vedeți niciodată nucleul, pur și simplu se execută în fundal. În plus față de acest nucleu, este concepută o interfață cu utilizatorul (UI).
Acum, dezvoltatorii ar putea proiecta interfața completă de la zero sau pot reutiliza design-uri realizate de alții. Reutilizarea designului are un avantaj major. Permite tuturor programelor din computer să arate similar. Prin urmare, ei folosesc seturi de instrumente GUI. GTK și Qt sunt două seturi de instrumente GUI extrem de comune.
GTK este setul de instrumente standard pentru GNOME în timp ce Qt este utilizat de KDE. Din punctul de vedere al utilizatorului, este doar aspectul care diferă. Programul rămâne același la inimă.
Răspuns
Un alt aspect important de luat în considerare este licențierea Qt link către divulgarea licenței , care este stabilită în mod explicit pentru a fi disponibilă în mod liber pentru majoritatea proiectelor fără scop lucrativ, dar este posibilă o relație comercială și ar putea avea restricții pentru acest caz. În timp ce GTK, precizați în mod explicit că poate fi utilizat în mod liber chiar și în aplicații proprietare declarație GTK :
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.
Un aspect cheie al dezvoltării GUI complexe se va baza pe GLADE ca un kit de proiectare și dacă acesta se potrivește abordării dvs. link glade . Acesta își propune să fie pe mai multe platforme, dar este posibil să nu fie atât de susținut pe cât este Qt.
Răspuns
Cum se compară până la modelele lor de obiecte respective și cât de atent respectă standardul C ++ – în experiența mea limitată, QT părea să fie un pic neplăcut cu generatoarele de coduri și reinventarea roții cu propriile clase funcționale echivalente pentru corzi și clase. Pe scurt, QT părea să aibă mai multe fluiere și clopote, ceea ce sunt sigur că multe găsit util, dar părea, de asemenea, să aibă o senzație grea de proprietate. După cum am spus, am avut o experiență limitată (și cu atât mai puțin cu Gtk). Mi-ar plăcea câteva opinii despre cum se compară astăzi – din perspectiva dezvoltatorului, care înclină spre abordări generice asupra lucrurilor care încearcă să utilizeze standardele C ++ (cum ar fi șirurile STL, C ++, firele etc.)
QString
s-au născut din necesitate în urmă cu zeci de ani, când nu existau caracteristici echivalente în STL. Acum că standardele C ++ moderne au preluat majoritatea caracteristicilor, multe clase Qt sunt doar învelitori subțiri în jurul soluțiilor native C ++.