Lista de kits de ferramentas de widget - List of widget toolkits
Este artigo fornece uma lista de kits de ferramentas de widget (também conhecidos como estruturas GUI ), usados para construir a interface gráfica do usuário (GUI) de programas, organizada por seus relacionamentos com vários sistemas operacionais .
Kits de ferramentas de widget de baixo nível
Integrado no sistema operacional
- OS X usa Cocoa . Mac OS9 e OS X usam Carbon para aplicativos de 32 bits.
- A API do Windows usada no Microsoft Windows . A Microsoft tinha as funções gráficas integradas ao kernel até 2006
- O sistema operacional Haiku usa uma versão estendida e modernizada da API Be que foi usada por seu predecessor espiritual BeOS . Espera-se que a Haiku Inc. elimine a compatibilidade binária e de origem com o BeOS em algum momento no futuro, o que resultará em sua própria API Haiku.
Como uma camada separada no topo do sistema operacional
- O X Window System contém blocos de construção primitivos, chamados Xt ou "Intrinsics", mas eles são usados principalmente por kits de ferramentas mais antigos, como: OLIT , Motif e Xaw . A maioria dos kits de ferramentas contemporâneos, como GTK ou Qt , os ignora e usa Xlib ou XCB diretamente.
- O Amiga OS Intuition estava anteriormente presente no Amiga Kickstart ROM e se integrou a uma biblioteca de widgets de nível médio-alto que invocou a GUI nativa do Workbench Amiga . Desde o Amiga OS 2.0, Intuition.library tornou-se baseado em disco e orientado a objetos. Além disso, Workbench.library e Icon.library tornaram-se baseados em disco e podem ser substituídos por soluções semelhantes de terceiros.
- Desde 2005, a Microsoft retirou o sistema gráfico do kernel do Windows.
Kits de ferramentas de widget de alto nível
Nome do kit de ferramentas | janelas | OS X | Tipo Unix | Linguagem de programação | Licença |
---|---|---|---|---|---|
AWT | plataforma cruzada | Java | |||
CEGUI | sim | sim | sim | C ++ | MIT |
Cacau | Não | sim | Não | Objective-C | Proprietário |
Elementar | sim | sim | sim | C | LGPL , BSD |
FLTK | sim | sim | sim | C ++ | LGPL |
Kit de ferramentas Fox | sim | Não | sim | C ++ | LGPL |
Fyne | plataforma cruzada | Ir | BSD | ||
GNUstep | sim | sim | sim | Objective-C | LGPL |
GTK | sim | sim | sim | C | LGPL |
Kivy | plataforma cruzada | Pitão | MIT | ||
LCL | sim | sim | sim | Object Pascal ( Free Pascal ) | LGPL |
IUP | sim | Não | sim | C | MIT |
Juce | sim | sim | sim | C ++ | GPL , proprietário |
LessTif | Não | Não | sim | C | LGPL |
MFC | sim | Não | Não | C ++ | Proprietário |
Nana C ++ | sim | Não | sim | C ++ | Licença Boost |
OWL (substituído por VCL) | sim | Não | Não | C ++ ( Borland C ++ ) | Proprietário |
Pivô (WTK) | plataforma cruzada | Java | Licença Apache | ||
Qt | sim | sim | sim | C ++ | LGPL , proprietário |
Vistas Rogue Wave | sim | Não | sim | C ++ | proprietário |
Calçados (kit de ferramentas GUI) | plataforma cruzada | Rubi | MIT | ||
Balanço | plataforma cruzada | Java | |||
Tk | sim | sim | sim | C | BSD |
TnFOX | sim | sim | sim | C ++ | LGPL |
Ultimate ++ | sim | sim | sim | C ++ | BSD |
VCL (substitui OWL) | sim | Não | Não | Object Pascal ( Delphi ) | Proprietário |
WTL | sim | Não | Não | C ++ | Licença Pública Microsoft |
wxWidgets | sim | sim | sim | C ++ | Licença WxWindows |
Dependente do sistema operacional
No Amiga
- O BOOPSI ( Sistema Básico de Programação Orientada a Objetos para Intuição) foi introduzido com o OS 2.0 e Intuição aprimorada com um sistema de classes em que cada classe representa um único widget ou descreve um evento de interface. Isso levou a uma evolução em que cada um dos desenvolvedores terceirizados percebeu seus próprios sistemas pessoais de classes.
- MUI : kit de ferramentas GUI orientado a objetos e o kit de ferramentas oficial para MorphOS .
- Reação : kit de ferramentas GUI orientado a objetos e o kit de ferramentas oficial para AmigaOS .
- Zune (kit de ferramentas GUI) é um clone de código aberto do MUI e o kit de ferramentas oficial do AROS .
No Macintosh
- Cacau - usado no OS X (consulte também Aqua ) .
- Estrutura MacApp Macintosh.
- Estrutura do PowerPlant Macintosh.
No Microsoft Windows
- O Microsoft Foundation Classes (MFC), um wrapper C ++ em torno da API do Windows.
- The Windows Template Library (WTL), uma extensão baseada em modelo para ATL e uma substituição do MFC
- The Object Windows Library (OWL), alternativa da Borland ao MFC.
- A Visual Component Library (VCL) é o kit de ferramentas da Embarcadero usado no C ++ Builder e Delphi . Ele envolve os controles nativos do Windows, fornecendo classes orientadas a objetos e design visual, embora também permitindo acesso às alças subjacentes e outros detalhes WinAPI, se necessário. Ele foi originalmente implementado como um sucessor do OWL , pulando o estilo OWL / MFC de criação de IU, que em meados dos anos noventa era um modelo de design desatualizado.
- Windows Forms (WinForms) é o conjunto de classes .NET da Microsoft que manipula controles GUI. Na implementação Mono de plataforma cruzada , é um kit de ferramentas independente, implementado inteiramente em código gerenciado (não envolvendo a API do Windows, que não existe em outras plataformas). O design do WinForms é muito parecido com o do VCL .
- O Windows Presentation Foundation (WPF) é o subsistema gráfico do .NET Framework 3.0 . As interfaces de usuário podem ser criadas no WPF usando qualquer uma das linguagens CLR (por exemplo, C # ) ou com a linguagem XAML baseada em XML . O Microsoft Expression Blend é um construtor de GUI visual para WPF.
- A Windows UI Library (WinUI) é o subsistema gráfico de aplicativos universais . As interfaces do usuário podem ser criadas no WinUI usando C ++ ou qualquer uma das linguagens .NET (por exemplo, C # ) ou com a linguagem XAML baseada em XML . O Microsoft Expression Blend é um construtor de GUI visual que oferece suporte a WinUI.
No Unix , no X Window System
Observe que o X Window System era originalmente para sistemas operacionais do tipo Unix, mas agora também roda no Microsoft Windows usando, por exemplo, Cygwin , portanto, alguns ou todos esses kits de ferramentas também podem ser usados no Windows.
- LessTif , uma versão de código aberto ( LGPL ) do Motif.
- MoOLIT , uma ponte entre a aparência do OPEN LOOK e o Motif
- Motif usado no Common Desktop Environment .
- OLIT , um kit de ferramentas intrínsecas OPEN LOOK baseado em Xt
- Xaw , o widget do Projeto Athena definido para o X Window System .
- XView , um kit de ferramentas OPEN LOOK compatível com SunView
Plataforma cruzada
Baseado em C (incluindo ligações para outras linguagens)
- Elementary , open source ( LGPL ), uma parte das Bibliotecas da Enlightenment Foundation , uma biblioteca rápida, estável e escalável que pode ser usada para criar aplicativos ricos e rápidos que podem ser usados em qualquer coisa, desde computadores de mesa diários a pequenos PDAs e decodificadores.
- GTK , código aberto ( LGPL ), principalmente para o X Window System, portado e emulado em outras plataformas; usado nos ambientes de desktop GNOME , Rox , LXDE e Xfce . A porta do Windows tem suporte para widgets nativos.
- IUP , open source ( MIT ), um kit de ferramentas GUI minimalista em ANSI C para Windows, UNIX e Linux.
- Tk , código aberto (estilo BSD), um conjunto de widgets acessado do Tcl e outras linguagens de script de alto nível (com interface em Python como Tkinter ).
- XForms , a Biblioteca de Formulários para X
- XVT , Extensible Virtual Toolkit
Baseado em C ++ (incluindo ligações para outras linguagens)
- CEGUI , código aberto ( Licença MIT ), kit de ferramentas de widget de plataforma cruzada projetado para desenvolvimento de jogos , mas também utilizável para desenvolvimento de aplicativos e ferramentas. Suporta vários renderizadores e bibliotecas opcionais.
- FLTK , código aberto ( LGPL ), kit de ferramentas de plataforma cruzada projetado para ser pequeno e rápido.
- Kit de ferramentas FOX , código aberto ( LGPL ), kit de ferramentas de plataforma cruzada.
- GLUI , um pequeno kit de ferramentas escrito com a biblioteca GLUT .
- gtkmm , interface C ++ para GTK
- Juce fornece GUI e conjunto de widgets com a mesma aparência no Microsoft Windows, X Window Systems, OS X e Android. A renderização pode ser baseada em OpenGL.
- Nana C ++ , código aberto (licença Boost), um kit de ferramentas de plataforma cruzada projetado para permitir a programação de GUI C ++ moderna
- Qt , proprietário e de código aberto ( GPL , LGPL ) disponível em Unix e Linux (com X11 ou Wayland), MS Windows (Desktop, CE e Phone 8), OS X, iOS, Android, BlackBerry 10 e Linux integrado; usado no ambiente de desktop KDE , Trinity , LXQt e Lumina , também é usado no shell Unity do Ubuntu .
- Rogue Wave Views (anteriormente ILOG Views) fornece GUI e biblioteca gráfica para Windows e as principais plataformas X11.
- TnFOX , código aberto ( LGPL ), um kit de ferramentas de portabilidade.
- Ultimate ++ é uma estrutura de aplicativo Win32 / X11 grátis empacotada com um IDE ( licença BSD )
- O Visual Component Framework (VCF) é um projeto de estrutura C ++ de código aberto ( licença BSD ).
- wxWidgets (anteriormente wxWindows), código aberto ( LGPL relaxado ), abstrai kits de ferramentas em várias plataformas para C ++, Python , Perl , Ruby e Haskell .
- Zinc Application Framework , kit de ferramentas de widget de plataforma cruzada.
Baseado em OpenGL
- Clutter (LGPL) (em C) é uma biblioteca de software de código aberto para a criação de interfaces gráficas de usuário rápidas, visualmente ricas e animadas.
Baseado em Flash
- O Adobe Flash permite a criação de widgets rodando na maioria dos navegadores da web e em vários telefones celulares.
- O Adobe Flex oferece widgets de alto nível para a construção de interfaces de usuário da web. Widgets em Flash podem ser usados no Flex.
- Os widgets Flash e Flex serão executados sem um navegador da web no ambiente de tempo de execução do Adobe AIR .
Baseado em Go
- Fyne , open source ( BSD ) é inspirado nos princípios do Material Design para criar aplicativos que se parecem e se comportam de forma consistente em Windows, macOS, Linux, BSD, Android e iOS.
Baseado em XML
Baseado em JavaScript
Em geral
- Cappuccino
- jQuery UI
- MooTools
- Qooxdoo pode ser entendido como Qt para a Web
- Script.aculo.us
- Adobe AIR
- Dojo Toolkit
- Sencha (anteriormente Ext JS)
- Telerik Kendo UI
- Webix
- WinJS
- Reagir
Estrutura de pilha completa
- Echo3
- SproutCore
- Telerik UI para ASP / PHP / JSP / Silverlight
- Vaadin - Java
- ZK - Uma estrutura Java Web para a construção de aplicativos Ajax e móveis ricos
Baseado em recursos
- Google Web Toolkit (GWT)
- Pyjs
- FBML Facebook Markup Language
Não mais desenvolvido
- YUI (Biblioteca de interface do usuário do Yahoo!)
Baseado em SVG
- Raphaël é um kit de ferramentas JavaScript para interfaces e animações SVG
Baseado em C #
- Wrappers Gtk # , C # em torno das bibliotecas GTK e GNOME subjacentes , escritos em C e disponíveis no Linux, MacOS e Windows.
- QtSharp, C # envolve o kit de ferramentas de widget Qt , que é baseado na linguagem C ++ .
- Formulários do Windows . Há uma implementação original da Microsoft que envolve a API do Windows e é executada no Windows, e a implementação alternativa do Mono que é multiplataforma.
Baseado em Java
- O Abstract Window Toolkit (AWT) é o kit de ferramentas de widget original da Sun Microsystems para aplicativos Java. Normalmente, ele usa outro kit de ferramentas em cada plataforma em que é executado.
- Swing é um kit de ferramentas de widget mais rico com suporte desde o J2SE 1.2 como um substituto para widgets AWT. O Swing é um kit de ferramentas leve, o que significa que não depende de widgets nativos.
- Apache Pivot é uma plataforma de código aberto para construir aplicativos da web ricos em Java ou qualquer linguagem compatível com JVM, e depende do kit de ferramentas de widget WTK.
- JavaFX e FXML .
- O Standard Widget Toolkit (SWT) é um kit de ferramentas de widget nativo para Java que foi desenvolvido como parte do projeto Eclipse . O SWT usa um kit de ferramentas padrão para a plataforma em execução (como a API do Windows, OS X Cocoa ou GTK) por baixo.
- Codename One originalmente projetado como um kit de ferramentas móvel de plataforma cruzada, posteriormente expandido para oferecer suporte a aplicativos de desktop tanto por meio de JavaSE quanto por meio de um pipeline de JavaScript por meio de navegadores
- java-gnome fornece ligações para o kit de ferramentas GTK e outras bibliotecas do ambiente de desktop GNOME
- Qt Jambi , a ligação Java oficial ao Qt da Trolltech. O suporte comercial e o desenvolvimento pararam
Baseado em Object Pascal
- FireMonkey ou FMX é um widget de plataforma cruzada e biblioteca gráfica distribuída com Delphi e C ++ Builder desde a versão XE2 em 2011. Tem ligações para C ++ até C ++ Builder e suporta Windows, macOS, iOS, Android e, mais recentemente Linux. FireMonkey suporta widgets nativos da plataforma, como um controle de edição nativo, bem como widgets personalizados que são estilizados para parecerem nativos no sistema operacional de destino. Seus gráficos são acelerados por GPU e ele oferece suporte a estilos e mistura seus próprios controles de implementação com controles de sistema nativos, o que permite que os aplicativos usem o comportamento nativo onde é importante (por exemplo, para entrada de texto IME ).
- IP Pascal usa uma biblioteca de gráficos construída sobre construções de linguagem padrão. Também incomum por ser um kit de ferramentas procedural que é multiplataforma (sem callbacks ou outros truques) e é completamente compatível com os paradigmas de entrada e saída serial padrão. Programas totalmente padrão com saída serial podem ser executados e estendidos com construções gráficas.
- Lazarus LCL (para Pascal , Object Pascal e Delphi via compilador Free Pascal ), uma biblioteca de classes que envolve GTK + 1.2, Gtk + 2.xe a API do Windows (suporte Carbon, Windows CE e Qt4 estão todos em desenvolvimento).
- fpGUI é criado com o compilador Free Pascal . Ele não depende de nenhuma grande biblioteca de terceiros e atualmente é executado em Linux, Windows, Windows CE e Mac (via X11). Uma porta Carbon (OS X) está em andamento.
- CLX (Component Library for Cross-platform) foi usado com Borland (agora Embarcadero ) Delphi , C ++ Builder e Kylix , para produzir aplicativos de plataforma cruzada entre Windows e Linux. Ele era baseado em Qt , envolto de tal forma que sua interface de programação era semelhante à do kit de ferramentas VCL . Ele não é mais mantido e distribuído e foi substituído pelo FireMonkey , um kit de ferramentas mais recente que também oferece suporte a mais plataformas, desde 2011.
Baseado em Objective-C
Baseado em Ruby
- Shoes (kit de ferramentas GUI) é uma estrutura de plataforma cruzada para desenvolvimento de interface gráfica com o usuário.
Ainda não categorizado
Comparação de kits de ferramentas de widget
Kit de ferramentas | lançamento inicial | Último lançamento | Idioma principal | Bindings | Ferramentas | Licença | Prós | Contras | Processo interno |
---|---|---|---|---|---|---|---|---|---|
ATL , WTL | 2004 | C ++ | Estúdio visual | não portátil | |||||
AWT | 1995 | Java | portátil | ||||||
CEGUI | 2004 | 0.8.7 (28 de abril de 2016 [±] | )C ++ | Python , Lua (usando tolua ++) | CEED | Licença MIT | Licença gratuita, rápida, multiplataforma, portátil, ferramenta de edição GUI gratuita | ||
Desordem | 2006 | C | Perl, Python, C #, C ++, Vala, Ruby | LGPL | Incorporação de GTK e WebKit | ||||
CLX | C ++ | ||||||||
Elementar | 2007 ( EFL : 2001) | 2016 | C | JavaScript, Python, Vala, C ++ | editje, edje | LGPL | Portátil, estável, rápido, fácil de usar | ||
FLTK | 1998 | 2019 | C ++ | Python ( pyFLTK ), Perl ( FLTK.pm ), Ruby ( Ruby / FLTK ), Tcl ( Tcl Fltk ), Guile ( guile-fltk ), Eiffel ( IFLTK ) | FLUID (Fast Light UI Designer) | LGPL (com uma exceção que permite links estáticos ) | rápido, pequeno o suficiente para link estático | seleção limitada de widgets | |
Flutter | 2017 | Dardo | |||||||
RAPOSA | 1997 | C ++ | Ruby ( FXRuby ), Python ( FXPy ), Eiffel ( EiffelFox ) | consistente em todas as plataformas | aparência não nativa | ||||
Fyne | 2018 | 2020 (1.3.2) | Ir | BSD | consistente em todas as plataformas, sem dependência de tempo de execução | requer OpenGL | |||
GLUI | C ++ | ||||||||
GNUstep | 1994 | 2017 | Objective-C | Java, Ruby, Scheme | Gorm (computação) | GPL para os aplicativos, LGPL para as bibliotecas | Licença gratuita e portátil | Nativo no macOS (com cacau) | X11 , Win32 , Wayland |
GTK | 1997 | 3.24.4 (21 de janeiro de 2019 [±] | )C | C ++ ( gtkmm ), Perl ( Gtk2-perl ), Ruby ( ruby-gtk2 ), Python ( PyGTK ), Haskell ( Gtk2Hs ), Java ( java-gnome ) (não disponível para Microsoft Windows), C # ( Gtk # ), PHP ( PHP-GTK ), Ada ( GTKAda ), D ( gtkD ), FreeBasic ( GladeToBac ), Go ( go-gtk ), OCaml ( lablgtk ), JavaScript ( Gjs , Seed (programação) ), Fortran ( gtk-fortran ), Lua ( lua-lgi ), R ( RGtk2 ) e outros via servidor GTK | Glade | LGPL | Licença gratuita e portátil | Parcialmente nativo apenas. | |
IUP | 1992 | 2019 | C | Lua ( IupLua ) | LEDC: um compilador para LED | MIT | Portátil, leve, use a API nativa, aparência e comportamento nativos, licença gratuita | Não Unicode (apenas ASCII simples) | |
Juce | 2004 | C ++ | Jucer | GPL , comercial | Plataforma cruzada, com ferramentas adicionais de envolvimento de plug-in de áudio ( VST , RTAS , AAX etc.) | ||||
MFC , WinAPI | 1992 | C ++ | Estúdio visual | não portátil (mas o Wine o implementa para o X Window ) | |||||
Motif , Lesstif | Década de 1980 | C | BX Pro | ||||||
Nana C ++ | 2007 | 1.7.4 (16 de maio de 2020 [±] | )C ++ | VisualStudio, Dev-C ++, Code :: Blocks, GCC | estilo C ++ portátil, leve e moderno | ||||
NWSTK | 2020 | SuperC (C ++ Nex) | |||||||
Qt | 1991 | 6.1 (6 de maio de 2021 [±] | )C ++ | Ruby ( QtRuby ), Python ( PyQt , PySide , PythonQt ), Ada ( QtAda ), c # ( Qyoto ), Java ( Qt Jambi ), Pascal ( FreePascal Qt4 ), Perl ( Perl Qt4 ), PHP (PHP-Qt), Haskell ( Qt Haskell ), Lua ( lqt , QtLua ), Dao ( DaoQt ), Tcl ( qtcl ), Common Lisp ( CommonQt ), D ( QtD ), Harbor ( hbqt ) | Qt Designer, Qt Creator | GPL , LGPL . | Portátil, conjunto rico de widgets, construtor de GUI, licença gratuita, API estável | Parcialmente nativo apenas. | |
Vistas Rogue Wave | 1993 | 2014 (5,8) | C ++ | ivfstudio | proprietário | portátil (Windows, tipo Unix), bom suporte | comercial | ||
Calçados (kit de ferramentas GUI) | 2007 | 2010 | Rubi | Licença MIT / código aberto | Simplicidade, facilidade de uso | ||||
Balanço | 1996 | Java | Eclipse, NetBeans | GPL para OpenJDK | Portátil (Java), widgets avançados, construtores de GUI | ||||
SWT | Java | D ( DWT ) | Eclipse | portátil | |||||
Tk | 1991 | 2015 | C, Tcl | Ruby ( RubyTk ), Python ( Tkinter ), Perl ( Perl / Tk ), Ada ( TASH ), Common Lisp ( LTk ), Erlang ( etk ), ... | | BSD | muito portátil, muitas ligações de linguagem | |||
Ultimate ++ | 2004 | 2020 | C ++ | TheIDE | BSD | portátil, NTL, licença gratuita | |||
VCF | C ++ | BSD | licença gratuita | ||||||
VCL | Delphi | ||||||||
Formulários do Windows | Linguagens CLI | Linguagens CLI | Expressão, Visual Studio | problemas de portabilidade, sem MVC | |||||
WPF , XAML , Silverlight | 2007 | Linguagens CLI | Linguagens CLI | Expressão, Visual Studio | Problemas de portabilidade | ||||
wxWidgets | 1992 | 3.0.5 (27 de abril de 2020 ) [±] |
C ++ | C ++ (nativo), Ruby ( wxRuby ), Python ( wxPython ), Perl ( wxPerl ), Java ( wxJava , jwx! ), Lua ( wxLua ), Tcl ( wxTCL ), JavaScript ( GLUEscript ), Smalltalk ( wxSqueak ), Erlang ( wxErlang ), Haskell ( wxHaskell ), C ( wxC ), D ( wxD ), .NET Framework ( wxNet ), Common Lisp ( wxCL ), Basic ( wxBasic ), BlitzMax ( wxMax ), Euphoria ( wxEuphoria ), Ada ( wxAda ) , Pike ( wxPike ) | VisualWx, Boa Constructor, PythonCard, Spe, XRCed, wxGlade , wxFormBuilder , DialogBlocks ($), wxDesigner ($) | Licença wxWindows | Conjunto portátil e rico de widgets, licença gratuita e semelhanças semânticas com o MFC facilitam a migração. | ||
Xaw , Atena | 1983 | 1.0.13 | C | MIT X11 | |||||
XUL | XML, JavaScript | portátil | |||||||
XVT | 1989 | 2010 | C e C ++ | Design para C e arquiteto para C ++ | Proprietário | Plataforma cruzada, conjunto de widgets rico, construtores de GUI C e C ++, muito estável | |||
Kit de ferramentas | lançamento inicial | Último lançamento | Idioma principal | Bindings | Ferramentas | Licença | Prós | Contras | Processo interno |
Veja também
Referências
links externos
- O GUI Toolkit, Framework Page , comparando algumas das GUIs modernas que existem.
- Pesquisa de conjuntos de widgets (para o sistema X Window) (Edward Falk)
- Kits de ferramentas GUI para o sistema X Window (Leslie Polzer, freshmeat.net, 27 de julho de 2003)
- Visão geral das bibliotecas de GUI do Microsoft Windows