gpt4 book ai didi

wpf - WPF/XAML 的开源替代品有哪些?

转载 作者:行者123 更新时间:2023-12-03 05:32:52 46 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




如果我们从 HTML/CSS 中学到了什么,那就是声明式语言(如 XML)在描述用户界面方面做得很好,因为:

  • 构建可以有效地模板化代码的代码预处理器很容易。
  • 代码采用定义良好、结构良好(理想情况下)的格式,因此很容易解析。
  • 有效解析或抓取基于 XML 的源文件的技术已经存在。
  • UI 脚本化代码变得更加简单和易于理解。
  • 它足够简单,设计人员可以自己设计界面。
  • 程序员不擅长创建 UI,所以它应该对设计师来说足够容易。

  • 我最近查看了 WPF 应用程序(即 XAML)的主要内容,它看起来与 HTML 中使用的声明性语言样式非常相似。

    桌面 UI 开发的当前状态在很大程度上是分散的,否则在图形用户界面设计领域(IE. GTK、XUL、Qt、Winforms、WPF 等)不会有这么多的重复工作。

    There are 45 GUI platforms for Python alone

    代表这些特征的开源 GUI 有哪些:
  • 标准化
  • 平台无关
  • 声明性标记语言
  • 语言不可知

  • WPF,或更具体地说,XAML 似乎是朝着正确方向迈出的很可能的一步。

    更新:

    非常感谢您提供的信息,请继续关注。以下是我从评论和答案中收集的选项。

    GladeXML
  • 编辑:Glade Interface Designer
  • 操作系统平台:所有
  • GUI平台:GTK+
  • 语言:C (libglade)、C++、C# (Glade#)、Python、Ada、Pike、Perl、PHP、Eiffel、Ruby

  • XRC (XML Resource)
  • 编辑:wxGlade , XRCed , wxDesigner , DialogBlocks (非免费)
  • 操作系统平台:所有
  • GUI平台:wxWidgets
  • 语言:C++、Python ( wxPython )、Perl ( wxPerl )、.NET ( wx.NET )

  • 基于 XML 的格式不是免费的、不是跨平台的或特定于语言的

    XUL
  • 编辑器:任何基本的文本编辑器
  • 操作系统平台:运行支持 XUL 的浏览器的任何操作系统
  • GUI平台:Gecko引擎?
  • 语言:C++、Python、Ruby 作为插件语言而不是基础语言

  • 注意:我不确定 XUL 是否值得在此列表中提及,因为它不是一种桌面 GUI 语言,而是一种 make-webapps-run-on-the-desktop 语言。另外,它需要浏览器才能运行。 IE,它是“桌面DHTML”。

    CookSwing
  • 编辑:Eclipse通过 WindowBuilder , NetBeans 5.0 (非免费)通过 Swing GUI Builder aka Matisse
  • 操作系统平台:所有
  • GUI平台:Java
  • 语言:仅限 Java

  • XAML (Moonlight)
  • 编辑:MonoDevelop
  • 操作系统平台:仅限 Linux 和其他基于 Unix/X11 的操作系统
  • GUI平台:GTK+
  • 语言:.NET

  • 注意:XAML 不是纯粹的开源格式,因为 Microsoft 控制着其使用条款,包括随时更改条款的权利。 Moonlight 不能合法地在 Windows 或 Mac 上运行。此外,唯一免于法律诉讼的平台是 Novell。 See this对我的意思的完整描述。
    XAML 也不是像 C#、托管 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 }
    }
    }
    }
    }
    }

    关于wpf - WPF/XAML 的开源替代品有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2962874/

    46 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com