Muitos pacotes estão disponíveis nas versões GTK e QT.

  • Qual é a diferença entre eles?
  • Existe alguma diferença no desempenho ou método de trabalho?

Resposta

Em geral, a diferença da perspectiva do usuário deve ser puramente estética. Qt e GTK definem temas independentemente (via, por exemplo, qtconfig ou gtk-chtheme) mas isso é harmonizado por alguns ambientes de desktop.

GNU / Linux tende a ser mais orientado para GTK do que Qt no sentido de que o anterior é mais comumente usado, então você pode preferi-lo quando tiver a escolha; uma exceção seria no KDE, que usa o Qt para seus próprios aplicativos – embora nenhum desses fatores seja muito importante.

A o problema mais significativo seria em contextos com RAM muito limitada (como em < 1/4 GB); neste caso, você provavelmente gostaria que o sistema usasse exclusivamente GTK ou Qt, mas não ambos. Na maioria dos desktops modernos com gigabytes de memória, no entanto, isso não é uma preocupação – usar ambos extensivamente pode custar-lhe um extra (palpite) 50-100 MB.


Observe que também existem versões diferentes de GTK (2 e 3) e Qt (3 e 4 ) ainda amplamente utilizado, mas não compatível com versões anteriores (portanto, um aplicativo Qt 3 não pode usar bibliotecas Qt 4). No entanto, ambas as versões podem existir em um sistema ao mesmo tempo e a consequência mais séria disso seria o potencial para confusão e um pouco mais de inchaço da memória.

Comentários

  • Eu estaria extremamente interessado em saber como você chegou à conclusão de que o Linux é mais orientado para GTK. Linux, normalmente implica apenas no kernel do Linux, que em geral não tem tendência para nenhum dos kits de ferramentas, uma vez que é um kernel do sistema operacional, não um programa de espaço do usuário GUI. Se você pretendia sugerir o GNU / Linux como um sistema operacional, eu ‘ ainda contesto sua reivindicação. Dizer que GNU / Linux é mais orientado para GTK porque Ubuntu é a distro mais popular é como dizer que Christiano Ronaldo é o melhor desportista porque futebol é o jogo mais jogado do mundo. (Eu ‘ d disputa isso também)
  • @darnir I ‘ colocarei ” GNU ” qualificador desde que eu quis dizer o sistema operacional em um sentido coloquial. Eu ‘ defenderei minha tese de que é mais orientado para GTK do que para Qt: GTK (que originalmente significava ” GIMP Tool Kit “, e GIMP = o GNU Image Manipulation Program), GIMP e GNOME são todos projetos GNU e uma parte central de sua visão (userland) para um sistema operacional , que emparelhado com o kernel é o que ” linux ” é historicamente. Então GTK foi desenvolvido principalmente para Linux, ele também é C nativo (vs. Qt ‘ s C ++), enquanto Qt é mais uma plataforma cruzada genuína entidade.
  • Embora eu concorde com você sobre a história e etimologia do GTK, isso não implica implicitamente que o GNU / Linux seja orientado para GTK. Na verdade, o oposto é verdadeiro e é confirmado por suas declarações. GTK foi projetado para linux, não o contrário. Eu ‘ d defendo minha tese afirmando que o Linux como kernel e GNU / Linux como sistema operacional são agnósticos em relação a qualquer GUI Toolkit. GTK é freqüentemente visto em estado selvagem mais do que Qt por causa da forte dependência do Ubuntu ‘ dele. Além disso, o fato de ser mais leve nos recursos do sistema ajuda.
  • @darnir Sim, o sistema operacional é essencialmente agnóstico WRT o kit de ferramentas da GUI – eu não diria que GTK é ” o ” kit de ferramentas nativo, etc. Mas você ‘ está errado sobre por que ” é frequentemente visto à solta mais ” – GTK era o kit de ferramentas mais amplamente usado na plataforma antes mesmo de o Ubuntu existir por causa da relação mencionada com outros partes fundamentais usadas extensivamente por todas as distros. É por isso que a maioria dos aplicativos linux GUI já são aplicativos GTK, e porque, sem mais contexto para prosseguir, faz sentido dizer a um novo usuário ” que você pode muito bem escolher aquele “, todo o resto sendo igual. Mas isso realmente não importa.
  • Utilizar vários kits de ferramentas diferentes também exigiria muito mais armazenamento; Eu não ‘ não acho que isso afetaria o desempenho, porém, apenas o espaço para outras coisas.

Resposta

Não, não há diferença na estrutura interna de tais programas. GTK e Qt são kits de ferramentas e estruturas de interface do usuário. Eles são bibliotecas que os desenvolvedores usam para projetar interfaces gráficas.

Quando um programa gráfico (GUI) é escrito, primeiro seu núcleo interno é desenvolvido. É isso que faz o programa funcionar. Você nunca o núcleo, eles simplesmente são executados em segundo plano. No topo desse núcleo, uma interface de usuário (IU) é projetada.

Agora, os desenvolvedores podem projetar a interface completa do zero ou reutilizar projetos feitos por outros. Reutilizar o design tem uma grande vantagem. Ele permite que todos os programas em seu computador sejam parecidos. Portanto, eles usam kits de ferramentas GUI. GTK e Qt são dois kits de ferramentas GUI extremamente comuns.

GTK é o kit de ferramentas padrão para GNOME, enquanto Qt é usado pelo KDE. Do ponto de vista do usuário, são apenas as aparências que diferem. O programa permanece o mesmo no coração.

Resposta

Outro aspecto importante a considerar é o licenciamento Qt link para a divulgação da licença que é explicitamente definido para estar disponível gratuitamente para a maioria dos projetos sem fins lucrativos, mas uma relação comercial é possível e pode ter restrições para esse caso. Considerando que GTK, declara explicitamente que ele pode ser usado livremente mesmo em aplicativos proprietários declaração 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. 

Um aspecto chave do desenvolvimento complexo de GUI irá contar com o GLADE como um kit de design e se isso se adequa à sua abordagem link do glade . Ele tem como objetivo ser multiplataforma, mas pode não ser tão amplamente suportado como o Qt.

Resposta

Como eles se comparam em relação a seus respectivos modelos de objeto e quão próximos seguem o padrão C ++ – em minha experiência limitada, QT parecia um pouco hacky com seus geradores de código e reinventando a roda com suas próprias classes funcionalmente equivalentes para strings e classes. Em suma, QT parecia ter mais apitos e sinos, o que tenho certeza de que muitos achado útil, mas também parecia ter uma sensação pesada e proprietária. Como eu disse, minha experiência com ele é limitada (e menos ainda com Gtk). Eu gostaria de algumas opiniões sobre como eles se comparam hoje – da perspectiva de um desenvolvedor, que tende a abordagens genéricas para coisas que tentam usar padrões C ++ (como STL, strings C ++, threads, etc.)

Comentários

  • Isso soa muito como opinião pessoal, não uma resposta baseada em fatos que ‘ é esperada na maioria dos sites SE. Observe também que coisas como QString nasceram por necessidade décadas atrás, quando não havia recursos equivalentes no STL. Agora que os padrões C ++ modernos adotaram a maioria dos recursos, muitas classes Qt são apenas pequenos invólucros em torno das soluções C ++ nativas.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *