2009-01-20 63 views
11

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

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

+0

伟大的问题 - 一定要更新它,让我们知道你怎么了! – Polsonby 2009-06-17 10:42:52

回答

2

谈到作为一个盲人程序员:

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

总之,WPF很好,但要确保你的屏幕阅读器能够与这类应用程序一起工作。下一个最好的选择可能是WinForms。如果你喜欢布局编码然后使用它,但如果这是你想要的工作技能,那么记住这一点。

1

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

+0

我来这里说这只是为了发现它已经说了。 :) – 2009-01-20 04:24:40

+0

实际上,我发现xaml非常难以与 – 2009-01-20 04:25:52

1

Tcl/Tk将完全按照您的要求进行操作。 网格布局管理器基于小部件的逻辑相对位置。

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

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

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

0

我不用Java编程,但我知道Java提供了编程创建的UI,并提供了一些非常棒的布局管理组件(原生Java到Java而不需要SWING)。我首先通过X工具包(任何人都记得Motif,OpenLook,HP Open View?)在X11的古老时代回到布局管理器,而Java似乎也采用了类似的技术。

您可以从简单的布局管理器创建Windows,对话框和菜单。

0

由于我自己看到了自己,而且没有在任何曾经被审计过的可访问性或盲目用户大量访问过的任何内容上工作太过密切,所以我不认为我的答案会非常彻底。然而,我的第一个直觉就是说,某种类似C#,PHP或ColdFusion等生成HTML的动态Web服务器体系结构将适合您处理大多数布局的描述,而无需指定以像素为单位的控件位置。当然可以通过CSS指定像素的控制位置,但这不是必需的。而且我知道HTML也具有明确的可访问性标准,但我不确定其他类型软件的可访问性标准的状态如何。

3

我要说的是,XAML将是一个不错的选择:

  • 像素处理不需要在代码
  • 项目的功能背后
  • 可以添加像素变化的控制 后来
  • 有是关于 如何使用它的很多文档

May如果你给我们一个你需要什么语言的想法,我们可以给你更好的建议。

+0

一起工作另外还有一个好处:它提供了一个很好的环境,可以在您输入时为您提供提示(Intellisense)。 – Ria 2009-01-20 06:38:34

0

您可以使用javascript和html。JavaScript有一个处理端口,所以你知道它对于你的课程将覆盖的东西足够强大。您可以在不知道关于它看起来像什么的一件事情的情况下编写html。事实上,这是编写html的首选方式。

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

至于可访问性,看看WAI ARIAopera's intro to WAI ARIA .A

WAI ARIA是构建丰富的JavaScript应用程序,而玩漂亮的屏幕阅读器的方式。这很酷。我没有看到更多的工作和激情投入到使任何其他编程堆栈中的Web栈可访问。

1

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

玲是微软的WPF/.NET编程容易图像,动画,交互和可视化一个C#基于库。 Bling面向设计技术人员,即有时进行编程的设计人员,以帮助快速建立丰富的UI设计思想。学生,艺术家,研究人员和业余爱好者也会发现Bling可以用作快速表达想法或可视化的工具。 Bling的API和构造针对快速编程丢弃代码进行了优化,而不是仔细编程生产代码。

金光闪闪的以下功能丰富的用户界面的快速原型援助:

* 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的是肖恩McDirmid和朋友创建了设计快速成型,以帮助一个开源项目。我们使用Bling来提高生产力,并希望与其他WPF UI设计原型分享。