HTML/CSSから何かを学んだ場合、それは宣言型言語(XMLなど)がユーザーインターフェイスを記述するのに適しているということです。
最近、WPFアプリケーション(XAMLなど)の要点を調べましたが、HTMLで使用される宣言型言語スタイルに驚くほど馴染みがあるようです。
デスクトップUI開発の現在の状態は、大部分が細分化されています。そうでない場合、グラフィカルユーザーインターフェイスデザイン(IE。GTK、XUL、Qt、Winforms、WPFなど)の領域でそれほど重複した努力はありません。
Python alone には45のGUIプラットフォームがあります
これらの特性を表すいくつかのオープンソースGUIは何ですか?
WPF、またはより具体的にはXAMLは、正しい方向へのかなりのステップのようです。
情報をありがとう、それをやって来てください。コメントと回答から集めたオプションを以下に示します。
GladeXML (
フリーではない、クロスプラットフォームではない、または言語固有のXMLベースのフォーマット
注:XULはデスクトップGUI言語ではなく、make-webapps-run-on-the-desktop言語であるため、このリストで言及するに値するかどうかはわかりません。さらに、実行するにはブラウザが必要です。 IE、それは「デスクトップ用のDHTML」です。
注:XAMLは純粋なオープンソース形式ではありません。Microsoftは、使用条件をいつでも変更する権利を含めて使用条件を管理しているためです。 Moonlightを合法的にWindowsまたはMacで実行することはできません。さらに、法的措置を免除される唯一のプラットフォームはノベルです。 これを参照 私の言いたいことの完全な説明について。 XAMLは、C#、Managed C++、CLRなどのECMA標準でもありません。
更新:質問は「元の質問が間違っていたため、WPFに代わるオープンソースはありますか?」から変更されました。この質問の方向は、新しい入力に合わせます。変更前に応答した人に謝ります。
QtはQMLを開発していますが、これはJSONを除いてXAMLによく似ています。現在のバージョンに対して作成されたプレビューとして利用でき、次のバージョンのスナップショットで利用できます。
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 }
}
}
}
}
}
Webは、Steamのほとんどをそのままデスクトップアプリから取り去っています。
大きな理由は、今誰もがウェブに集中しているからだと思います。 HTML5は、Webでできることの飛躍的な進歩となるでしょう。高速のJavaScriptインタープリターと対応ブラウザーを使用すると、デスクトッププログラムの必要性は徐々に低下し始めます。それはGoogleが賭けている馬であり、はるかに少ない程度であるAppleも。
良いものを作成すると、OSごとに根本的に異なる実装が行われるため、ベースツールキット自体の移植性は低くなります。
考えてみると、クロスプラットフォームでこの種のインフラストラクチャを開発するための基盤は、Webだけです。 WPFは、アーキテクチャの観点とWinForms/straight WinAPIコードとでは大きく異なります。そのような何かを各OSに適応させるには、うまく機能する何かを作ることを祈るなら、OSごとに非常に異なる配管が必要になります。 (Webアプリは非常に高速ではありませんが、気になりますが、良くなっています)。
ルックアンドフィールは常に多少の問題になります。
誰のルックアンドフィールを使用しますか? UIをOS chromeに合わせて「ネイティブ」に見えるようにしようとしていますか、それともSwingが数年前に行ったようなことをして、そこにあるものとはまったく異なる外観のアプリを開発しますか?(うーん、それは電車の難破だった...)そして、各OSのルックアンドフィールにUIを適合させることを選択した場合、あらゆる種類の測定および設計の問題が発生する可能性があります。
ノベルには、Silverlightのオープンソース実装があり、XAMLを強力にサポートしており、Moonlightと呼ばれています。