Qt

 Nota: Para outros significados, veja QT.
Qt
DesenvolvedoresQt Company e KDAB
Lançamento inicial20 de maio de 1995 (31 anos)
Lançamento estável
6.10.1 / 20 de novembro de 2025; há 11 meses (2025-11-20)
Repositóriocode.qt.io/cgit/qt/qtbase.git/
Escrito emC++, QML
Sistema
operacional
Multiplataforma
PlataformaWindows, Linux, BSD, macOS, Android, iOS
TipoFramework para Aplicativo
Licença
Websitewww.qt.io

Qt (oficialmente pronunciado como a palavra inglesa cute ) é um framework multiplataforma para desenvolvimento de interfaces gráficas em C++ criado pela empresa norueguesa Trolltech. Com ele é possível desenvolver aplicativos e bibliotecas uma única vez e compilá-los para diversas plataformas sem que seja necessário alterar o código fonte.

Qt é utilizado largamente no ambiente desktop KDE e na antiga plataforma para dispositivos móveis da Nokia, Maemo (também livre), além do BlackBerry 10 e diversos softwares conhecidos e outros internos por grandes empresas não só da área de tecnologia como Google, HP e Adobe, mas também dos mais variados setores como Disney, DreamWorks SKG, Lucasfilm, Siemens, Volvo, NASA, ESA, Philips, Samsung e Panasonic.

Qt é mantido pelo Qt Project, uma iniciativa de software livre envolvendo desenvolvedores individuais e provenientes de empresas como Nokia, Digia e outras. Antes do lançamento do Qt Project, era desenvolvido pela divisão da Nokia Qt Development Frameworks, da empresa Norueguesa Trolltech, a desenvolvedora original do Qt. Em fevereiro de 2011 a Nokia anunciou sua decisão de abandonar as tecnologias baseadas no Symbian e usar tecnologias da Microsoft em seus aparelhos. Logo após foi anunciado que a Digia, uma empresa finlandesa de softwares corporativos e uma das principais usuárias e colaboradoras do Qt, iria assumir o licenciamento comercial e serviços de suporte do Qt. Em agosto de 2012 um anúncio foi realizado que a Digia iria assumir todo desenvolvimento do Qt já que a Nokia não teria mais qualquer interesse no framework. Antes da aquisição a Nokia já preparava o lançamento do Qt 5, uma versão completamente reestruturada.

Plataformas

Qt funcionam nas seguintes plataformas:

Plataformas suportadas pela comunidade

Como o Qt está aberto no Gitorious várias plataformas são suportadas pela comunidade:

Design

Qt usa o C++ padrão com geração de código através do seu Meta Object Compiler, ou moc com várias macros para enriquecer a linguagem. Qt pode ser usado por várias linguagens de programação através de bibliotecas de ligação. Roda nas principais plataformas de desktop, dispositivos móveis e embarcados. Tem suporte à internacionalização. Algumas das características não relacionadas à GUI incluem SQL para acesso a diversos banco de dados, XML, JSON, thread, redes, impressão, PDF, manipulação de imagens como SVG e uma API unificada multiplataforma para manipulação de arquivos, além de diversas estrutura de dados, por isso o Qt é um framework completo para desenvolvimento de aplicações multiplataforma.

Módulos

A nova versão será Qt 5 e espra ser lançada em agosto de 2012. Essa nova versão marca uma grande mudança produzindo um framework mais modularizado, gráficos acelerados por hardware, QML e JavaScript tendo papel importante. C++ Widgets continuarão suportados mas não serão mais parte central da plataforma. Qt 5 também terá novas funcionalidades, melhoria em performance, rapidez de desenvolvimento e suporte básico ao C++11 mantendo compatibilidade com C++98.

Uso de renderização nativa da UI

QT é usada para emular o visual nativo das plataformas, onde ocasionalmente leva a algumas leves discrepâncias onde a emulação é imperfeita. Versões recentes usam APIs nativas das diferentes plataformas para selecionar métricas e desenhar parte dos controles e não sofrem tanto dos problemas citados.

Em algumas plataformas (como no MeeGo e KDE) Qt é a API nativa.

Compilador Metaobject

O compilador metaobject, ou moc, é uma ferramenta que processa fontes de um programa Qt gerando código C++ padrão. Ele interpreta certas macros em um código C++ como anotação de código e as usa para gerar código C++ adicional com Meta Informação sobre as classes usada no programa. Essa meta informação é usada para prover funcionalidades não disponíveis no C++ tais como signais e slots, introspecção de tipos e chamadas de função assíncronas.

Bindings para outras linguagens

Diversas outras linguagens de programação além do C++ podem usar a Qt através de bibliotecas que conectam a linguagem ao framework. Algumas delas permitem acesso completo a todos os módulos enquanto outras apenas a alguns módulos mais importantes para a programação de uma GUI. Esses bindings são criados pelas comunidades e não são suportados oficialmente pelos desenvolvedores da Qt, embora algumas delas já tenham recebido esse suporte no passado. As principais linguagens com bindings são: Ada, C# e .Net, D, Go, Haskell, Harbour, Java, Lisp, Lua, OCaml, Pascal, Perl, PHP, Python, R, Ruby, Rust, Scheme, Tcl além do QML que é uma linguagem declarativa pertencente ao próprio Qt e o QtScript, uma linguagem baseada no Ecmascript também disponível no framework e suporta por pelas ferramentas oficiais.

Qualquer aplicação pode ser configurada por scripts através do QtScript.

Programa Olá Mundo

#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel label("Olá, Mundo!");
    label.show();
    return app.exec();
}

Ferramentas

História

Haavard Nord e Eirik Chambe-Eng (os desenvolvedores originais da Qt e o CEO e Presidente, respectivamente da Trolltech) começaram o desenvolvimento da "Qt" em 1991.

O toolkit foi chamado de Qt porque a letra Q ficava atraente no Emacs, e "t" foi inspirado no Xt, o toolkit X.

As primeiras versões contavam apenas com duas edições: Qt/X11 for Unix e Qt/Windows for Windows. A versão para Windows só estava disponível em licença proprietária, significando que aplicações escritas para o Qt for X11 não poderiam ser portadas para Windows sem a compra de uma licença comercial.

No fim de 2001, a Trolltech lançou a Qt 3.0, adicionando suporte para o Mac OS X. O suporte para o Mac OS X também estava disponível apenas com licença proprietária até Junnho de 2003, quando a Trolltech lançou a Qt 3.2 com suporte ao Mac OS X disponível através de licença GPL.

Em Junho de 2005, a Trolltech lançou a Qt 4.0.

A Nokia adquiriu a Trolltech ASA em 17 de Junnho de 2008 e mudou seu nome inicialmente para Qt Software, e depois para Qt Development Frameworks. Desde então o desenvolvimento da Qt foi focado no suporte para seus dispositivos, usando tecnologias como Symbian S60 platform. Version 1.0 do Nokia Qt SDK foi lançado em 23 de Junho de 2010. O código fonte foi liberado através do Gitorious, para aumentar a adoção e participação da comunidade nas melhorias da Qt.

Em Dezembro de 2012, foi lançada a Qt 5.0.

Em Dezembro de 2020, foi lançada a Qt 6.0.

Licenciamento

A Qt sempre esteve disponível para licenciamento para aplicações proprietárias. Com o tempo a Qt foi sendo disponibilizada através de licenças livres. Atualmente está disponível sob as licenças:

Ver também

Outros projetos Wikimedia também contêm material sobre este tema:
Wikilivros Livros e manuais no Wikilivros

Referências

  1. ↑ Blanchette, Jasmin; Summerfield, Mark (2006). C++ GUI Programming with Qt 4 (em inglês). [S.l.]: Prentice-Hall. ISBN 0-13-187249-4
  2. ↑ Hilsheimer, Volker (20 de novembro de 2025). «Qt 6.7.1 Released!» (em inglês). www.qt.io. Consultado em 26 de dezembro de 2025
  3. 1 2 3 4 5 6 «Qt Licensing» (em inglês). qt-project.org. Consultado em 8 de dezembro de 2020. Cópia arquivada em 8 de dezembro de 2020
  4. 1 2 «GNU General Public License (GPL)» (em inglês). qt-project.org. Consultado em 8 de dezembro de 2020. Cópia arquivada em 8 de dezembro de 2020
  5. 1 2 «GNU Lesser General Public License (LGPL)» (em inglês). qt-project.org. Consultado em 8 de dezembro de 2020. Cópia arquivada em 8 de dezembro de 2020
  6. 1 2 «Qt Commercial License» (em inglês). qt-project.org. Consultado em 8 de dezembro de 2020. Cópia arquivada em 8 de dezembro de 2020
  7. ↑ «That smartphone is so Qt». 16 de fevereiro de 2010. Consultado em 29 de novembro de 2013
  8. ↑ «Digia to Acquire Qt from Nokia». 9 de agosto de 2012. Consultado em 13 de agosto de 2012. Arquivado do original em 13 de agosto de 2012
  9. 1 2 «Thoughts about Qt 5». 9 de maio de 2011. Consultado em 13 de agosto de 2012. Arquivado do original em 12 de setembro de 2012
  10. 1 2 http://www.h-online.com/open/news/item/Final-Qt-5-0-release-delayed-until-August-1564405.html
  11. ↑ Developer.qt.nokia.com (11 de agosto de 2011). «Qt Wiki – Support for Windows». Consultado em 13 de agosto de 2012
  12. ↑ Developer.qt.nokia.com (12 de agosto de 2011). «Qt Wiki – Support for Windows CE and Windows Mobile». Consultado em 13 de agosto de 2012
  13. ↑ Developer.qt.nokia.com. «Qt Wiki – Support for Symbian». Consultado em 13 de agosto de 2012
  14. ↑ All About Symbian (20 de outubro de 2008). «Nokia Announce Technology preview of Qt on S60». Consultado em 13 de agosto de 2012
  15. ↑ Developer.qt.nokia.com (14 de agosto de 2011). «Qt Wiki – Support for Mac OS X». Consultado em 13 de agosto de 2012
  16. ↑ Developer.qt.nokia.com (12 de agosto de 2011). «Qt Wiki – Suporte para Linux/X11». Consultado em 13 de agosto de 2012
  17. ↑ Developer.qt.nokia.com (12 de agosto de 2011). «Qt Wiki – Support for Embedded Linux». Consultado em 13 de agosto de 2012
  18. ↑ Developer.qt.nokia.com (14 de agosto de 2011). «Qt Wiki – Qt on Maemo/MeeGo». Consultado em 13 de agosto de 2012
  19. ↑ «Qt for BlackBerry». Consultado em 30 de novembro de 2013. Arquivado do original em 3 de dezembro de 2013
  20. ↑ «Getting started with Lighthouse». Consultado em 25 de novembro de 2011
  21. ↑ Kristian Høgsberg (25 de janeiro de 2011). «Add wayland lighthouse plugin». Consultado em 14 de agosto de 2012. Arquivado do original em 14 de maio de 2013
  22. ↑ Hub.opensolaris.org (26 de outubro de 2009). «KDE on OpenSolaris». Consultado em 13 de agosto de 2012. Arquivado do original em 20 de fevereiro de 2010
  23. ↑ Qt-haiku.ru. «Qt Applications and UI Framework for Haiku». Consultado em 13 de agosto de 2012
  24. ↑ Svn.netlabs.org (15 de setembro de 2011). «Qt 4 Application and UI Framework for eCS». Consultado em 13 de agosto de 2012
  25. ↑ Gitorious.org. «Experimental development of qt for the iPhone». Consultado em 13 de agosto de 2012. Arquivado do original em 6 de fevereiro de 2010
  26. ↑ Qt-iphone.com. «Qt-iPhone project». Consultado em 13 de agosto de 2012. Arquivado do original em 12 de agosto de 2012
  27. ↑ darron (25 de fevereiro de 2010). «Blog: Qt on the Palm Pre». Griffin.net. Consultado em 13 de agosto de 2012
  28. ↑ darron (30 de janeiro de 2010). «Blog: Qt on Amazon Kindle DX». Griffin.net. Consultado em 13 de agosto de 2012
  29. ↑ Sourceforge.net. «Necessitas project». Consultado em 13 de agosto de 2012
  30. ↑ Slashdot (22 de fevereiro de 2011). «First Alpha of Qt For Android Released». Consultado em 13 de agosto de 2012
  31. ↑ Doc.qt.nokia.com. «Qt 4.7: Qt Declarative Module». Consultado em 13 de agosto de 2012. Arquivado do original em 15 de março de 2010
  32. ↑ «A Brief History of Qt». Consultado em 13 de agosto de 2012. Arquivado do original em 30 de junho de 2008
  33. ↑ Dot.kde.org. «Trolltech Releases Qt 4.0 | KDE.news». Consultado em 13 de agosto de 2012
  34. ↑ Niels Weber (23 de Junho de 2010). «Nokia Qt SDK 1.0 released». Labs.trolltech.com. Consultado em 13 de agosto de 2012. Arquivado do original em 30 de julho de 2012
  35. ↑ Lars Knoll (19 de dezembro de 2012). «Introducing Qt 5.0» (em inglês). blog.qt.io. Consultado em 25 de novembro de 2020
  36. ↑ Lars Knoll (8 de dezembro de 2020). «Qt 6.0 Released» (em inglês). blog.qt.io. Consultado em 8 de dezembro de 2020

Ligações externas