【问题标题】:Best language for quickly creating user interfaces without drag and drop? [closed]无需拖放即可快速创建用户界面的最佳语言? [关闭]
【发布时间】:2016-07-28 02:12:00
【问题描述】:

我是一名盲人大学生,正在学习侧重于用户界面设计的编程课程。该类正在使用处理,这是完全无法访问的。我正在寻找一种语言,它允许我在不拖放的情况下创建 GUI,并希望它足够聪明,可以完成大部分布局,而不会强迫我以像素为单位指定控制位置。

我了解 Perl、Java、C/C++、c# 和 HTML。我正在考虑创建 HTA 应用程序。我唯一的要求是该语言必须在 MS Windows 下运行,并且不能使用 SWING 或 GTK 作为底层工具包。

【问题讨论】:

  • 好问题 - 请务必更新它,让我们知道您的进展情况!

标签: user-interface accessibility


【解决方案1】:

我会说 xaml 将是一个不错的选择:

  • 不需要像素操作
  • 隐藏代码中的项目功能
  • 可以添加像素变化进行控制 稍后
  • 有很多关于 如何使用它

也许如果你告诉我们你需要什么语言,我们可以给你更好的建议。

【讨论】:

  • 另一个优点:它带有一个很好的环境,可以在您键入时为您提供提示(智能感知)。
【解决方案2】:

作为一个盲人程序员:

  • C# + WinForms:您可以手动创建代码并使用布局管理器或在头脑中计算尺寸,或者如果您使用 JAWS 屏幕阅读器,那么在 WinForms 设计器中会有一些脚本可以帮助您。
  • C# + WPF:在这里您可以使用 XML 定义您的 UI,但是要了解您的想法会更加复杂。当然看看这个,因为它是一个非常好的解决方案。目前 WPF 的另一个问题是并非所有屏幕阅读器都支持这项新技术。
  • www.EmpowermentZone.com 的 Jamal Mazrui 创建了一个名为“按代码布局”的东西,但我没有这方面的经验。
  • HTML+Javascript 会很好,但我怀疑在你的课程中是否允许。
  • WXWidgets:我对这个跨平台、多语言的 UI 工具包没有太多经验,但我相信它有布局管理器,因此我认识的几个盲人程序员都在使用它。
  • 最后,我曾经手动设计 Win32 资源脚本,在我的脑海中计算大小(没有布局管理器)。如果您想走这条路,这当然是可以实现的。

总之,WPF 不错,但请确保您的屏幕阅读器可以与这种应用程序配合使用。下一个最佳选择可能是 WinForms。如果您喜欢 Layout By Code 就使用它,但如果这是您想要的就业技能,请记住这一点。

【讨论】:

  • 我在阅读器上使用了处理程序,因为这些程序非常简单,这样做会更快,然后学习另一种创建 UI 的方法。不过,我在课程结束后使用了 C# 和下巴脚本,它非常适合快速创建可访问的界面。
【解决方案3】:

看看 XAML。我认为这对于现代 Windows 和 Web UI 创建者来说都是一个好的开始。

【讨论】:

  • 我来这里说这件事,却发现有人说。 :)
  • 我实际上发现 xaml 非常难以使用
【解决方案4】:

Tcl/Tk 将完全按照您的意愿行事。 pack 和 grid 布局管理器基于小部件的逻辑相对位置。

虽然 Tk 的“原生”语言是 Tcl,但许多其他语言都有 Tk 绑定。

label .l -text "this is a label"
button .b -text 'quit' -command "exit"
pack .l .b

【讨论】:

    【解决方案5】:

    在 codeplex 上查看这个项目。它可以帮助你(作为处理和java的替代品) http://bling.codeplex.com/

    ling 是一个基于 C# 的库,用于在 Microsoft 的 WPF/.NET 上轻松编程图像、动画、交互和可视化。 Bling 面向设计技术人员,即有时会编程的设计师,以帮助快速制作丰富的 UI 设计理念的原型。学生、艺术家、研究人员和业余爱好者也会发现 Bling 作为快速表达想法或可视化的工具很有用。 Bling 的 API 和构造针对丢弃代码的快速编程进行了优化,而不是生产代码的仔细编程。

    Bling 具有以下功能,有助于快速制作丰富的 UI 原型:

    * Declarative constraints that maintain dynamic relationships in the UI without the need for complex event handling. For example, button.Width = 100 - slider.Value causes button to shrink as the slider thumb is moved to the right, or grow as it is moved to the left. Constraints have many benefits: they allow rich custom layouts to be expressed with very little code, they are easy animate, and they support UIs with lots of dynamic behavior.
    * Simplified animation with one line of code. For example, button.Left.Animate.Duration(500).To = label.Right will cause button to move to the right of label in 500 milliseconds.
    * Pixel shader effects without the need to write HLSL code or boilerplate code! For example, canvas.CustomEffect = (input, uv) => new ColorBl(new Point3DBl(1,1,1) - input[uv].ScRGB, input[uv].ScA); defines and installs a pixel shader on a canvas that inverts the canvas's colors. Pixel shading in Bling takes advantage of your graphics card to create rich, pixel-level effects.
    * Support for multi-pass bitmap effects such as diffuse lighting.
    * An experimental UI physics engine for integrating physics into user interfaces! The physics supported by Bling is flexible, controllable, and easy to program.
    * Support for 2.5D lighting.
    * A rich library of geometry routines; e.g., finding where two lines intersect, the base of a triangle, the area of triangle, or a point on Bezier curve. These routines are compatible with all of Bling's features; e.g., they can be used in express constraints, pixel shaders, or physical constraints. Bling also provides a rich API for manipulating angles in both degrees and radians.
    * And many smaller things; e.g., a frame-based background animation manager and slide presentation system.
    * As a lightweight wrapper around WPF, Bling code is completely compatible with conventional WPF code written in C#, XAML, or other .NET languages.
    

    Bling 是由 Sean McDirmid 和朋友创建的一个开源项目,用于帮助设计快速原型。我们使用 Bling 来提高我们的工作效率,并希望与其他 WPF UI 设计原型师分享它。

    【讨论】:

      【解决方案6】:

      我可能会尝试使用 C#。即使不使用拖放,它也对 Windows 常用控件等具有相当友好的界面。只是不要像往常一样使用设计器和代码。

      【讨论】:

        【解决方案7】:

        我不使用 Java 编程,但我知道 Java 提供了 UI 的编程创建并提供了一些出色的布局管理组件(Java 原生而不需要 SWING)。我第一次接触 Layout Managers 是在 X11 的旧时代使用 X Toolkits(还有人记得 Motif、OpenLook、HP Open View 吗?),而 Java 似乎也采用了类似的技术。

        您可以通过简单的布局管理器创建窗口、对话框和菜单。

        【讨论】:

          【解决方案8】:

          我自己有视力,并且没有在任何经过​​可访问性审核或盲人用户大量访问的内容上进行过密切合作,我认为我的回答不会非常彻底。然而,我的第一直觉是说某种生成 HTML 的动态 Web 服务器架构(如 C#、PHP 或 ColdFusion)将适合您为您处理大部分布局的描述,而无需您以像素为单位指定控制位置。当然可以通过 CSS 以像素为单位指定控制位置,但这不是必需的。而且我知道 HTML 也有明确定义的可访问性标准,而我不确定其他类型软件的可访问性标准的状态如何。

          【讨论】:

            【解决方案9】:

            您可以使用 javascript 和 html。有一个处理 javascript 的端口,因此您知道它对于您的课程将涵盖的内容来说已经足够强大了。您可以在不知道它的外观的情况下创作 html。事实上,这是编写 html 的首选方式。

            javascript 的主要缺点不是 javascript 本身,而是浏览器 dom。那是控制 html 元素的接口。但是,像 jquery、mootools 或 dojo 这样的库可以解决大部分问题。

            至于可访问性,请查看WAI ARIA 和opera's intro to WAI ARIA.a

            WAI ARIA 是一种构建丰富的 javascript 应用程序的方法,同时与屏幕阅读器配合得很好。这很酷。我没有看到更多的工作和热情投入到使 Web 堆栈可在任何其他编程堆栈中访问。

            【讨论】:

              猜你喜欢
              • 2013-12-16
              • 2015-08-30
              • 2018-09-22
              • 1970-01-01
              • 2015-12-24
              • 2017-12-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多