2008-08-07 21 views
12

Ich habe Swing zurück gelernt, aber jetzt bin ich zu Python gewechselt und möchte einige Apps mit GUIs erstellen. Ich hatte keine Zeit, eine neue GUI-API zu lernen, also habe ich Jython benutzt, aber ich würde CPython bevorzugen.Cross Platform, Sprache Agnostic GUI Markup Language?

Es wäre großartig, wenn ich ein einfaches Markup haben könnte, das mir erlaubt, GUI-Bibliotheken zu wechseln. Es wäre sogar noch besser, wenn ich die gleiche Auszeichnungssprache für alle Sprachen verwenden könnte, damit ich schnell GUIs für jede Sprache erstellen kann, die ich verwende. Kennt jemand eine solche Markup/Bibliothek?

Ich habe Markups wie Glade und wxWidget Markup gesehen (ich habe den Namen vergessen). Sie sind teilweise das, wonach ich suche (eine GUI erstellen, ohne sie in einer Sprache zu programmieren), aber sie sind eng mit einer bestimmten Bibliothek verknüpft. Und beide sind nicht wirklich gut aussehend oder freundlich für die menschliche Bearbeitung.

Antwort

8

erm .. HTML? (versuchen, hier lustig zu sein ... während wir auf echte Antworten warten ..)

+0

Warum nicht? Wenn Sie einen angepassten Browser haben könnten, um ihn zu bedienen, könnte es die perfekte Wahl sein. Es ist einfach, standardisiert und einfach zu bedienen. –

+2

@Milan: bis Sie es auf Internet Explorer ausführen ... –

+0

@Milan: Im Vergleich zu anderen Markup-Sprachen (z. B. XAML), ist es enorm schwieriger, die erwarteten Ergebnisse zu erhalten. Es mag allgegenwärtig sein, aber es ist weder einfach noch einfach. –

1

Die wxWidgets (früher bekannt als wxWindows) -Bibliothek könnte das sein, was Sie suchen. Es gibt einen besonders guten Port für Python, wxPython, sowie Versionen für verschiedene Sprachen - C#, C++, Perl und Ruby - und für verschiedene GUIs: Win32, Mac OS X, GTK +, X11, Motif, WinCE. Die Bibliothek ist schon eine Weile her und ist ziemlich solide.

3

Nicht sicher, ob Sie das suchen, aber es gibt Glade (oder Windows download), das ist ein Designer für GTK +. Es generiert eine XML-Datei, mit der die GUI in verschiedenen Sprachen erstellt werden kann.

5

http://en.wikipedia.org/wiki/Qt_(toolkit)">Qt (ausgesprochen "niedlich" von seinen Erschaffern [1]) ist ein plattformübergreifendes Anwendungsentwicklungsframework, das für die Entwicklung von. Weit verbreitet ist GUI-Programme

Qt verwendet C++ mit mehreren nicht-Standard durch einen zusätzlichen Pre-Prozessor implementiert Erweiterungen, den Standard C++ Code generiert vor der Kompilierung von Qt kann auch in mehreren anderen Programmiersprachen verwendet werden;.. Bindungen existieren für Ada (QtAda) [4], C ** # ** (Qyoto/Kimono) [5], Java (Qt Jambi) [6], Pascal, Perl, PHP (PHP-Qt), Rubin (RubyQt) und Python (PyQt). Es läuft auf allen wichtigen Plattformen und verfügt über umfangreiche Unterstützung bei der Internationalisierung. Nicht-GUI-Funktionen umfassen SQL-Datenbankzugriff, XML-Parsing, Thread-Management, Netzwerkunterstützung und eine einheitliche plattformübergreifende API für die Dateiverarbeitung.

3

XML User Interface Language. Ich weiß nicht viel darüber, also nicht sicher, ob es Ihren Wünschen entspricht. Poste mit deiner Erfahrung zurück, wenn du damit spielst.

0

Ich lese etwas über XML User Interface Language (XUL) und es sieht wirklich robust und gut unterstützt. Das Hauptproblem für mich ist, dass es an die Gecko-Rendering-Engine gebunden ist, so dass es plattformübergreifend ist, wie wxWidgets, QT und GTK + plattformübergreifend sind. Auch dort Python-Bindungen scheinen nicht so gut wie diese anderen Bibliotheken.

GladeXML und XRC scheinen, wie besser Markups

1

@Cristian und Antony Cramp: während XUL eine gute Wahl für UI-Entwicklung (plattformübergreifende Open-Source-Lizenz, in Firefox und anderen großen Software verwendet wird), es ist sicherlich nicht sprachunabhängig. Du bist mit Gecko verbunden, mit JS für das Scripting. Es gibt experimentelle Unterstützung für Python-Skripting, aber es ist nur experimentell, AFAIK.

Sie können die Benutzeroberfläche in XUL + JS definieren und Back-End-Komponenten verwenden, die in C++ geschrieben wurden (es sind auch Python- und Java-Brücken verfügbar).

4

Ich bezweifle ernsthaft, dass Sie eine Auszeichnungssprache für GIUs finden, die nicht gebunden an eine bestimmte Bibliothek ist. Um so etwas zu geben, müsste es eine standardisierte GUI-Markup-Sprache mit mehreren Implementierungen geben.

0

Ich würde mit XSLT gehen, daher könnte es auch in andere Schnittstellen eingebettet werden.

0

Wenn Sie zu .NET wechseln, können Sie eine gängige GUI-Sprache verwenden, zum Beispiel Razor in MVC (wenn Sie Web-Entwicklung machen), und Sie haben die Wahl zwischen C# oder VB oder einer Reihe anderer Sprachen.