Veuillez énumérer des bibliothèques de programmation GUI, des outils à outils, des frameworks qui permettent d'écrire des applications d'interface graphique rapidement. Je veux dire de telle manière que
Comme les réponses suggèrent, cela peut être défini comme déclaratif programmation d'interface graphique, mais ce n'est pas nécessairement tel. Toute approche est correcte si cela fonctionne, est facile à utiliser et au calcul.
Il y a quelques bibliothèques d'interface graphique/boîte à outils comme celle-ci. Ils sont énumérés ci-dessous. Veuillez étendre la liste si vous voyez une boîte à outils de qualification manquante. Indiquez si le projet est crossplateform, mature, actif et donner un exemple si possible.
Veuillez utiliser ce wiki pour discuter Seulement open source Projets.
Ceci est la liste jusqu'à présent (dans l'ordre alphabétique):
Fudgets est une bibliothèque de haskell. Plate-forme: Unix. Statut: expérimental, mais toujours maintenu. Un exemple:
import Fudgets
main = fudlogue (shellF "Hello" (labelF "Hello, world!" >+< quitButtonF))
(Source: Picamatic.com )
Renaissance permet de décrire une interface graphique en XML simple. Plateformes: OSX/GNUSTEP. Statut: une partie de gnustep. Un exemple ci-dessous:
<window title="Example">
<vbox>
<label font="big">
Click the button below to quit the application
</label>
<button title="Quit" action="terminate:"/>
</vbox>
</window>
(Source: Picamatic.com )
GUI basé sur HTML (HTML + JS). Crossplatform, mature. Peut être utilisé entièrement sur le côté du client.
Vous recherchez un bel exemple "helloworld".
(Source: Picamatic.com )
Javafx est utilisable pour les applications autonomes (Desktop) ainsi que pour les applications Web. Pas complètement crossplateform, pas encore complètement ouvert source. Statut: 1.0 Libération. Un exemple:
Frame {
content: Button {
text: "Press Me"
action: operation() {
System.out.println("You pressed me");
}
}
visible: true
}
Screenshot est nécessaire.
Phooey est une autre bibliothèque de haskell. Crossplatform (WxWidgets), HTML + JS Backend prévu. Mature et active. Un exemple (un peu plus qu'un helloworld):
ui1 :: UI ()
ui1 = title "Shopping List" $
do a <- title "apples" $ islider (0,10) 3
b <- title "bananas" $ islider (0,10) 7
title "total" $ showDisplay (liftA2 (+) a b)
(Source: Picamatic.com )
Pythoncard décrit une interface graphique dans A Python Dictionary. Crossplatform (WxWidgets). Certaines applications l'utilisent, mais le projet semble calé. Il y a une fourchette active.
I Skip exemple PythonCard car il est trop verbeux pour le concours.
(Source: Picamatic.com )
Chaussures pour Ruby. Plateformes: Win/OSX/GTK +. Statut: jeune mais actif. Une application minimale ressemble à ceci:
Shoes.app {
@Push = button "Push me"
@note = para "Nothing pushed so far"
@Push.click {
@note.replace "Aha! Click!"
}
}
(Source: Picamatic.com )
TCL/TK . CrossPlateform (son propre ensemble de widget). Mature (probablement même datée) et active. Un exemple:
#!/usr/bin/env wish
button .hello -text "Hello, World!" -command { exit }
pack .hello
tkwait window .
(Source: Picamatic.com )
Tekui pour Lua (et C). Plateformes: X11, DirectFB. Statut: Alpha (utilisable, mais l'API évolue toujours). Un exemple:
#/usr/bin/env lua
ui = require "tek.ui"
ui.Application:new {
Children = {
ui.Window:new {
Title = "Hello",
Children = {
ui.Text:new {
Text = "_Hello, World!", Style = "button", Mode = "button",
},
},
},
},
}:run()
(Source: Picamatic.com )
Treethon pour Python. Il décrit une interface graphique dans un fichier YAML (Python dans un arbre Yaml). Plateforme: GTK +. Statut: Travailler dans la prororée. Une application simple ressemble à ceci:
_import: gtk
view: gtk.Window()
add:
- view: gtk.Button('Hello World')
on clicked: print view.get_label()
Celui-ci n'est pas encore libéré. L'idée est d'utiliser Python cadres de contexte (with
mot-clé) pour structurer le code de l'interface graphique. Voir Blog de Richard Jones ' Pour plus de détails.
with gui.vertical:
text = gui.label('hello!')
items = gui.selection(['one', 'two', 'three'])
with gui.button('click me!'):
def on_click():
text.value = items.value
text.foreground = red
[~ # ~] xul [~ # ~ ~] + JavaScript peut être utilisé pour créer des applications de bureau autonomes avec Xulrunner ainsi que Mozilla Extensions. Mature, open source, croisée croisée.
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="main" title="My App" width="300" height="300"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<caption label="Hello World"/>
</window>
(Source: Picamatic.com )
Merci de vos contributions!
Pas à enfant, mais html.
C'est une plate-forme inter-plate-forme et résume la disposition de l'interface graphique dans un fil de texte simple. C'est définitivement mature, ainsi que bien compris et bien documentée.
Il existe un tas de façons de modèles de fichiers HTML pour un contenu dynamique et d'autres moyens de convertir des syntaxes personnalisées en HTML si vous n'aimez pas les crochets.
Script de côté client avec javascript, script de côté serveur avec PHP/Ruby/Python/Perl.
Ce n'est pas bien adapté à toutes les fins, mais pour beaucoup, c'est assez bon. Il n'y a aucune raison que cela doit être servi soit - vous pouvez distribuer un fichier HTML à vos clients si vous le souhaitez - voir TIDDLYWIKI pour un bon exemple de votre choix.
Ce que vous décrivez, c'est, à l'exception des chaussures, la notion neuve de programmation déclarative. Je décrirais des chaussures plus comme une interface graphique langage de domaine spécifique . Eh bien, je dis que les formulaires de base visuels, si vous avez regardé derrière le IDE Designer, étions déclaratifs. Donc, aller plus loin, les formes SQL * d'Oracle sont-elles, bien que les assemblées avec un L'éditeur de texte était un processus seulement à entreprendre par les très courageux.
Pour ajouter une autre à la liste, Microsoft a XAML qui décrit entre autres choses conçues des gites construits pour le [~ # ~] WPF [~ ~ # ~] .
Bien que certains des régimes mentionnés soient assez simples, des GIV définies par des déclarations peuvent être aussi complexes que tout défini dans le code, ils sont tout simplement plus faciles et ersers: ils disent "de quoi" vous voulez arriver et de laisser le cadre sous-jacent à gérer le "comment".
TCL/TK est une langue de script utilisée pour la construction de gui-guignoires de manière interactive. Il est disponible sur différentes plates-formes, notamment UNIX, Windows et Mac OS X.
Pajamas - http://pyjs.org - C'est un ensemble de widget de bureau, déguisé en tant que jeu Widget Web 2.0 basé sur AJAX. C'est tellement tellement pas comme un jeu de widget Web que je me suis effectivement porté à le bureau - http://pyjd.org - Utilisation de WebKit (le même moteur dans Adobe Air, Google Chrome, Safari, etc.)
c'est "Hello World":
[ : Window.alert ("Bonjour, Ajax!") [.____] [.____] Si __ == '__' __ '__': B = bouton ("Cliquez-moi" ) RootPanel (). Ajouter (b)
cela répond immédiatement aux quatre premières exigences sur cinq. Exigence 5 est remplie par ceci:
( = Horizontalpanel () P.Ajouter (HTML ("<B> Hello </ B>"))) [.____] P.Ajouter (HTML ("World")) [.____] ) .Ajouter (p)
il ne pouvait pas obtenir de plus simple.
GTK-Server est extrêmement simple à utiliser et peut être utilisé à partir de plus de 30 langues, y compris Bash et Visual Basic.
[~ # ~] xul [~ # ~ ~] (C'est assez facile à utiliser, et puissant - une grande partie de Firefox est implémentée à l'aide de XUL pour la structure de l'interface graphique, + JavaScript pour la manipulation logique)
Le XUL Tutorial a quelques bons exemples. Voici un pour tabbox . Celui au bas de la page contient des onglets commutables, des boutons, des zones d'édition et des boîtes de groupe, et il est assez simple (pas de liaison JavaScript/CSS/XBL/CLÉ/etc.). Ils ajoutent ensuite progressivementplusStuff Plus tard, ce qui est beaucoup de fonctionnalité pour la longueur du fichier qui le spécifie. (au moins jusqu'à ce que vous commenciez à ajouter JavaScript pour gérer la logique en question) Si je devais faire quelque chose comme ça dans Win32, ce serait une vraie douleur.
Je viens de tomber SDL/Swing aujourd'hui.