无需拖放即可快速创建用户界面的最佳语言?

时间:2009-01-20 03:53:24

标签: user-interface accessibility

我是一名盲人大学生,正在介绍专注于用户界面设计的编程课程。该类正在使用Processing,这是完全无法访问的。我正在寻找一种语言,这种语言可以让我在没有拖放的情况下创建GUI,并且希望能够足够聪明地完成大部分布局,而不必强迫我指定像素的控制位置。

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

9 个答案:

答案 0 :(得分:3)

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

  • 不需要像素操作
  • 代码背后的项目功能
  • 可以添加更改像素的像素 稍后
  • 有很多文档 如何使用

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

答案 1 :(得分:2)

作为盲人程序员说:

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

总之,WPF很不错,但请确保您的屏幕阅读器适用于此类应用。下一个最好的选择可能是WinForms。如果您喜欢Layout By Code,那么请使用它,但如果这是您想要的就业技能,请记住这一点。

答案 2 :(得分:1)

看看XAML。我认为对于现代Windows和Web UI创建者来说,这可能是一个良好的开端。

答案 3 :(得分:1)

Tcl / Tk将完全按照你的意愿行事。 打包网格布局管理器基于小部件的逻辑相对位置。

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

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

答案 4 :(得分:1)

在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设计原型分享。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我不用Java编程,但我知道Java提供了UI的编程创建,并提供了一些很棒的布局管理组件(Native to Java而不需要SWING)。我第一次接触布局经理回到X11的旧时代,使用X Toolkits(任何人都记得Motif,OpenLook,HP Open View?),Java似乎采用了类似的技术。

您可以从简单的布局管理器创建Windows,Dialogs和Menus。

答案 7 :(得分:0)

我自己也看不到任何曾经被盲人用户审核过的任何事情,我认为我的答案不会太彻底。然而,我的第一直觉是,某种生成HTML的动态Web服务器体系结构(如C#,PHP或ColdFusion)将适合您处理大多数布局的描述,而无需您以像素为单位指定控件位置。当然可以通过CSS以像素为单位指定控制位置,但这不是必需的。我知道HTML也有明确的可访问性标准,而我不确定其他类型软件的可访问性标准的状态。

答案 8 :(得分:0)

你可以使用javascript和html。有一个处理javascript的端口,所以你知道它足够强大,你的课程将覆盖的东西。你可以在不知道它的外观的情况下编写html。实际上,这是创作html的首选方式。

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

至于accessiblity,请查看WAI ARIA opera's intro to WAI ARIA

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