WPF/XAML的开源选择是什么? [关闭
-
23-10-2019 - |
题
如果我们从html/css中学到了任何东西,那就是声明语言(如xml)在描述用户界面方面做得很好,因为:
- 可以易于构建可以有效地模板的代码预处理器。
- 该代码的结构良好(理想情况下)的定义良好,因此很容易解析。
- 有效解析或爬网的技术已经存在。
- UIS脚本代码变得更加简单,更容易理解。
- 设计师能够自己设计界面,这很简单。
- 程序员擅长创建UI,因此应该使设计师变得足够容易。
最近,我看了一个WPF应用程序(即XAML)的肉,对于HTML中使用的声明性语言样式看起来非常熟悉。
台式UI开发的当前状态在很大程度上是分数化的,否则在图形用户界面设计的域(即GTK,XUL,QT,Winforms,WPF等)不会有太多重复的努力。
哪些代表这些特征的开源GUI是:
- 标准化
- 平台独立
- 声明性标记语言
- 语言不可知论
WPF,或更具体地说,XAML似乎是朝正确方向迈出的一步。
更新:
非常感谢您提供的信息,请保持稳定。这是我从评论和答案中收集的选择。
- 编辑: GLADE接口设计师
- 操作系统平台:所有
- GUI平台: GTK+
- 语言:C(libglade),C ++,C#(Glade#),Python,Ada,Pike,Perl,Perl,PHP,Eiffel,Ruby
- 编辑: wxglade, xrced, WXDESIGNER, 对话框 (非免费)
- 操作系统平台:所有
- GUI平台: wxwidgets
- 语言:C ++,Python(wxpython),perl(wxperl), 。网 (wx.net)
基于XML的格式不是免费的,不是跨平台或特定语言的格式
- 编辑:任何基本文本编辑器
- 操作系统平台:任何运行支持XUL的浏览器的操作系统
- GUI平台:壁虎引擎?
- 语言:C ++,Python,Ruby作为插件语言而不是基本语言
注意:我不确定Xul是否值得在此列表中提及,因为它不再是桌面GUI语言,而更多的是Make-Webapps-in-the-desktop语言。另外,它需要一个浏览器才能运行。即,这是“桌面的DHTML”。
- 编辑: 蚀 通过 窗框, Netbeans 5.0 (非免费)通过 秋千Gui Builder又名Matisse
- 操作系统平台:所有
- GUI平台:Java
- 语言:仅Java
注意:XAML不是纯开源格式,因为Microsoft控制其使用条款,包括随时更改条款的权利。月光无法在Windows或Mac上合法运行。此外,唯一免于法律行动的平台是Novell。 看到这个 有关我的意思的完整描述。 XAML也不是ECMA标准,例如C#,托管C ++和CLR。
更新:问题已从“ WPF有开源替代方案?因为原始问题是错误的,而且很烂。这个问题的方向改变了方向以匹配新输入。我的歉意对在改变之前做出回应的人们。
解决方案
QT正在开发QML,看起来很像XAML,除了JSON中。它可作为针对当前版本构建的预览可用,可在下一版本的快照中获得。
这是来自 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 }
}
}
}
}
}
其他提示
网络将大部分Steam从桌面应用程序中移开。
我认为最大的原因是每个人现在都专注于网络。 HTML5将成为网络可以做到的量子飞跃。借助快速的JavaScript口译员和功能强大的浏览器,对桌面程序的需求随着时间的流逝而开始减弱。那是Google押注的马,在苹果的程度上也较小。
创建好的东西将对每个操作系统具有根本不同的实现,因此基本工具包本身不会非常便携。
如果您考虑一下,Web是我们唯一真正常见的基板,可以以跨平台方式开发这种基础架构。从架构的角度来看,WPF与Winforms/Straight Winapi代码有着难以置信的不同。如果您要祈祷做得很好,则将类似的内容适应每个操作系统将为每个操作系统都有很大不同的管道。 (请注意,并不是说网络应用程序非常快,但是它们正在越来越好)。
外观和感觉总是有些问题。
您使用谁的外观和感觉?您是否尝试使UI适应OS Chrome,以使其看起来“本地”,或者您在几年前做的事情像Swing一样做的事情并开发出与所有事物不同的应用程序? (U,那是火车残骸...)如果您选择将UI适应每个操作系统的外观,则可能会有各种测量和设计问题。
Novell具有Silverlight的开源实施,并为XAML提供了极大的支持,称为Moonlight: