Pregunta

Si hemos aprendido algo de HTML/CSS es que, lenguajes declarativos (como XML), hacer un buen trabajo de descripción de Interfaces de Usuario porque:

  1. Es fácil construir el código de preprocesadores que puede plantilla el código de manera efectiva.
  2. El código está en un lugar bien definido y bien estructurado (idealmente) formato por lo que es fácil de analizar.
  3. La tecnología de manera efectiva analizar de rastreo o un XML basado en la fuente de archivo que ya existe.
  4. La UIs de secuencias de comandos de código se vuelve mucho más sencillo y fácil de entender.
  5. Es lo suficientemente simple como que los diseñadores son capaces de diseñar la interfaz de sí mismos.
  6. Los programadores de aspirar a la creación de la UIs, por lo que debe ser hecho bastante fácil para los diseñadores.

Recientemente tomé un vistazo a la carne de una aplicación de WPF (es decir.el código XAML) y parece sorprendentemente familiar a la declarativa de estilo de lenguaje que se utiliza en HTML.

El estado actual de la interfaz de usuario de escritorio de desarrollo es en gran parte ha fraccionado, de lo contrario no habría mucho esfuerzo duplicado en el dominio de la interfaz gráfica de usuario de diseño (es decir.GTK, XUL, Qt, Winforms, WPF, etc).

Hay 45 GUI plataformas para Python solo

¿Cuáles son algunos de código Abierto interfaz gráfica de usuario que representan estas características:

  • estandarizado
  • independiente de la plataforma
  • declarativa de lenguaje de marcado de
  • independiente del idioma

WPF, o más específicamente XAML parece bastante probable que paso en la dirección correcta.

Actualización:

Muchas gracias por la info, keep it comin'.Aquí están las opciones que he reunido a partir de las observaciones y respuestas.

GladeXML

  • Editor: Glade Diseñador De Interfaz
  • Las Plataformas de sistemas operativos:Todos
  • GUI de la Plataforma: GTK+
  • Idiomas:C (libglade), C++, C# (Glade#), Python, Ada, Lucio, Perl, PHP, Eiffel, Ruby

XRC (Recurso XML)

Basado en XML, formatos que no son libres, no de la cruz-plataforma o el lenguaje específico

XUL

  • Editor:Cualquier editor de texto básico
  • Las Plataformas de sistemas operativos:Cualquier sistema operativo que se ejecuta en un navegador que soporte XUL
  • GUI de la Plataforma:Motor Gecko?
  • Idiomas:C++, Python, Ruby como plugin de idiomas que no se base idiomas

Nota:No estoy seguro de si XUL merece especial mención en esta lista, porque es menos de un escritorio GUI idioma y más de un hacer-webapps-ejecutar-en-el-idioma del escritorio.Además, se requiere de un navegador para ejecutar.Es decir, es 'DHTML para el escritorio.'

CookSwing

XAML (luz de Luna)

  • Editor: MonoDevelop
  • Las Plataformas de sistemas operativos:Linux y otros Unix/X11 basados en sistemas operativos sólo
  • GUI Plataformas: GTK+
  • Idiomas:.NET

Nota:XAML no es un puro Open Source formato debido a que los controles de Microsoft que sus términos de uso, incluyendo el derecho a modificar los términos en cualquier momento.La luz de la luna puede no ser legalmente hecha para ejecutarse en Windows o Mac.Además, la única plataforma que está exento de la acción legal es de Novell. Ver este para una descripción completa de lo que quiero decir.XAML no es también un estándar ECMA como C#, C++ Administrado, y el CLR.

Actualización:La pregunta ha sido cambiado de "hay una alternativa de código Abierto a WPF?debido a que la pregunta original era malo, y era una mierda.La dirección de esta pregunta ha cambiado de dirección del partido hasta alinearse con la nueva entrada.Mis disculpas a las personas que respondieron antes de cambiar.

¿Fue útil?

Solución

Qt es el desarrollo de QML, que se parece mucho a XAML, excepto en JSON.Está disponible como una vista previa construido en contra de la versión actual, y está disponible en las instantáneas de la próxima versión.

He aquí un pequeño fragmento de http://doc.qt.nokia.com/4.7-snapshot/declarative-ui-components-progressbar.html

import Qt 4.7
import "content"

Rectangle {
   id: main

    width: 600; height: 405
    color: "#edecec"

    Flickable {
       anchors.fill: parent
       contentHeight: column.height + 20

       Column {
           id: column
           x: 10; y: 10
           spacing: 10

           Repeater {
               model: 25

               ProgressBar {
                 property int r: Math.floor(Math.random() * 5000 + 1000)
                 width: main.width - 20

                 NumberAnimation on value { duration: r; from: 0; to: 100; loops: Animation.Infinite }
                 ColorAnimation on color { duration: r; from: "lightsteelblue"; to: "thistle"; loops: Animation.Infinite }
                 ColorAnimation on secondColor { duration: r; from: "steelblue"; to: "#CD96CD"; loops: Animation.Infinite }
               }
           }
       }
   }
}

Otros consejos

  • La Web está tomando la mayoría de las de vapor de distancia de las aplicaciones de escritorio como es.

    Creo que la razón es que todo el mundo está concentrado en la web ahora.HTML5 va a ser un salto cuántico hacia adelante en lo que la web puede hacer.Con rápido de JavaScript intérpretes y capaz de los navegadores, la necesidad de un programa de escritorio comenzará a disminuir con el tiempo.Ese es el caballo que Google apuesta, y en mucho menor grado, Apple también.

  • La creación de algo bueno tendría radicalmente diferentes versiones para cada sistema operativo, por lo que la base del kit de herramientas de sí mismo no sería muy portátil.

    Si usted piensa acerca de ello, la Web es el único realmente sustrato común tenemos sobre el cual desarrollar este tipo de infraestructura en una cruz-plataforma de manera.WPF es increíblemente diferente desde un punto de vista arquitectónico vsWinForms/recto WinAPI código.La adaptación de algo como lo que a cada uno OS podría tener una gran cantidad de muy diferentes de plomería para cada SO, si usted fuera a tener una oración de hacer algo que se realiza bien.(No es que las aplicaciones web son muy rápidos, en los que la mente, pero están mejorando).

  • Verse y sentirse siempre va a ser un poco de un problema.

    Cuyo aspecto y la sensación que utilizan?Qué tratas de adaptar la interfaz de usuario para el sistema operativo chrome por lo que se ve "nativos", o hacer algo como el " Swing lo hizo años atrás y desarrollar aplicaciones que se ven claramente diferente de todo lo que hay?(Uf, que fue un choque de trenes...), Y si usted elige para adaptar la interfaz de usuario para cada sistema operativo se vea y sienta, usted puede tener todo tipo de medición y los problemas de diseño.

Novell tiene una implementación de código abierto de Silverlight, con el gran apoyo de XAML, llamó a la luz de la Luna:

http://en.wikipedia.org/wiki/Moonlight_(tiempo de ejecución)

http://www.mono-project.com/Moonlight

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top