Molti pacchetti sono disponibili sia nelle versioni GTK che QT.

  • Qual è la differenza tra loro?
  • Cè qualche differenza nelle prestazioni o nel metodo di lavoro?

Risposta

In generale, la differenza dal punto di vista dellutente dovrebbe essere puramente estetica. Qt e GTK impostano i temi in modo indipendente (tramite, ad esempio, qtconfig o gtk-chtheme) ma questo è armonizzato da alcuni ambienti desktop.

GNU / Linux tende ad essere più orientato a GTK di Qt nel senso che il primo è più comunemente usato, quindi potresti preferirlo quando ti viene data la scelta; uneccezione sarebbe sotto KDE, che usa Qt per le proprie applicazioni, sebbene nessuno di questi fattori sia molto importante.

A un problema più significativo sarebbe in contesti con RAM molto limitata (come < 1/4 GB); in questo caso probabilmente vorrai che il sistema utilizzi esclusivamente GTK o Qt, ma non entrambi. Sulla maggior parte dei desktop moderni con gigabyte di memoria, tuttavia, questo non è un problema – lutilizzo estensivo di entrambi potrebbe costare 50-100 MB in più (ipotesi selvaggia).


Nota che esistono anche versioni diverse di GTK (2 e 3) e Qt (3 e 4 ) ancora ampiamente utilizzato ma non compatibile con le versioni precedenti (quindi unapplicazione Qt 3 non può utilizzare le librerie Qt 4). Tuttavia, entrambe le versioni possono esistere contemporaneamente su un sistema e la conseguenza più grave di ciò sarebbe il potenziale di confusione e un po più di volume di memoria.

Commenti

  • Sarei estremamente interessato a sapere come si arriva alla conclusione che Linux è più orientato a GTK? Linux, in genere implica solo il kernel Linux che in generale non ha pregiudizi verso nessuno dei toolkit, dal momento che è un kernel del sistema operativo, non un programma dello spazio utente della GUI. Se intendevi implicare GNU / Linux come sistema operativo, ‘ contesterei comunque la tua richiesta. Dire che GNU / Linux è più orientato a GTK perché Ubuntu è la distribuzione più popolare è come dire che Christiano Ronaldo è il miglior sportivo perché il calcio è il gioco più giocato al mondo. (Anchio ‘ ne discuto)
  • @darnir I ‘ inserirò ” GNU ” nel qualificatore poiché intendevo il sistema operativo in senso colloquiale. ‘ difenderò la mia tesi secondo cui è più orientato in GTK che in Qt: GTK (che originariamente stava per ” GIMP Tool Kit ” e GIMP = the GNU Image Manipulation Program), GIMP e GNOME sono tutti progetti GNU e una parte fondamentale della loro visione (userland) per un sistema operativo , che in coppia con il kernel è ciò che ” linux ” è storicamente. Quindi GTK è stato sviluppato principalmente per Linux, è anche C ++ nativo (rispetto a Qt ‘ s C ++), mentre Qt è più di un autenticamente multipiattaforma entità.
  • Anche se sarò daccordo con te sulla storia e letimologia di GTK, questo non implica implicitamente che GNU / Linux sia orientato a GTK. In realtà è vero il contrario ed è confermato dalle sue affermazioni. GTK è stato progettato per Linux, non il contrario. ‘ difendo la mia tesi affermando che Linux come kernel e GNU / Linux come sistema operativo sono agnostici nei confronti di qualsiasi GUI Toolkit. GTK è spesso visto in natura più di Qt a causa della forte dipendenza di Ubuntu ‘ da esso. Anche il fatto che sia più leggero sulle risorse di sistema aiuta.
  • @darnir Sì, il sistema operativo è essenzialmente agnostico WRT il toolkit GUI – Non affermerei che GTK sia ” il ” toolkit nativo e così via. Ma ‘ ti sbagli sul motivo per cui ” è spesso visto in natura più ” – GTK era il toolkit più utilizzato sulla piattaforma prima ancora che Ubuntu esistesse a causa del suddetto rapporto con altri parti fondamentali ampiamente utilizzate da tutte le distribuzioni. Questo è il motivo per cui la maggior parte delle app della GUI di Linux sono già app GTK e perché, senza più contesto per andare avanti, ha senso dire a un nuovo utente ” tanto vale sceglierlo “, a parità di tutte le altre. Ma non ha molta importanza.
  • Lutilizzo di più toolkit diversi richiederebbe anche molto più spazio di archiviazione; Tuttavia, non ‘ penso che questo avrebbe un impatto sulle prestazioni, ma solo lo spazio per altre cose.

Risposta

No, non cè differenza nella struttura interna di tali programmi. GTK e Qt sono toolkit e framework dellinterfaccia utente. Sono librerie che gli sviluppatori utilizzano per progettare interfacce grafiche.

Quando viene scritto un programma grafico (GUI), vengono prima sviluppati i suoi interni principali. Questo è ciò che fa funzionare il programma. Non vedi il core, vengono semplicemente eseguiti in background. In cima a questo nucleo, viene progettata uninterfaccia utente (UI).

Ora, gli sviluppatori possono progettare linterfaccia completa da zero o riutilizzare progetti realizzati da altri. Il riutilizzo del design ha un grande vantaggio. Permette a tutti i programmi del tuo computer di sembrare simili. Quindi, usano toolkit GUI. GTK e Qt sono due toolkit GUI estremamente comuni.

GTK è il toolkit standard per GNOME mentre Qt è usato da KDE. Dal punto di vista dellutente, sono solo gli sguardi che differiscono. Il programma rimane lo stesso in fondo.

Risposta

Un altro aspetto importante da considerare è la licenza Qt link alla loro divulgazione della licenza che è esplicitamente impostata per essere liberamente disponibile per la maggior parte dei progetti senza scopo di lucro, ma una relazione commerciale è possibile e potrebbe avere restrizioni per quel caso. Mentre GTK, specifica esplicitamente che può essere utilizzato liberamente anche in applicazioni proprietarie istruzione 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 aspetto chiave dello sviluppo di GUI complesse si baserà su GLADE come kit di progettazione e se questo si adatta al tuo approccio glade link . Ha lo scopo di essere multipiattaforma, ma potrebbe non essere così ampiamente supportato come Qt.

Risposta

Come si confrontano rispetto ai rispettivi modelli a oggetti e quanto seguono lo standard C ++ – nella mia limitata esperienza, QT sembrava essere un po hacky con i suoi generatori di codice e reinventare la ruota con le proprie classi funzionalmente equivalenti per archi e classi. In breve, QT sembrava avere più fischi e campane, che ne sono sicuro molti trovato utile, ma sembrava anche avere un aspetto pesante e proprietario. Come ho detto, avevo unesperienza limitata con esso (e ancor meno con Gtk). Vorrei alcune opinioni su come si confrontano oggi – dal punto di vista di uno sviluppatore, che si appoggia ad approcci generici a cose che cercano di utilizzare standard C ++ (come STL, stringhe C ++, thread ecc.)

Commenti

  • Questo suona molto come unopinione personale, non una risposta basata sui fatti che ‘ si aspetta dalla maggior parte dei siti SE. Si noti inoltre che cose come QString sono nate per necessità decenni fa, quando non cerano caratteristiche equivalenti nellSTL. Ora che i moderni standard C ++ hanno raccolto la maggior parte delle funzionalità, molte classi Qt sono solo sottili involucri attorno alle soluzioni C ++ native.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *