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

Tabela de comparação do kit de ferramentas de widget
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

No Microsoft Windows

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.

Plataforma cruzada

Baseado em C (incluindo ligações para outras linguagens)

Baseado em C ++ (incluindo ligações para outras linguagens)

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

RIAs

Estrutura de pilha completa

Baseado em recursos

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

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 ; 5 anos atrás ) [±] ( 2016-04-28 ) 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 ; 2 anos atrás ) [±] ( 21/01/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 ; 17 meses atrás ) [±] ( 2020-05-16 ) 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 ; 5 meses atrás ) [±] ( 2021-05-06 ) 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 ; 17 meses atrás ( 2020-04-27 )

) [±]

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