2009-01-20 47 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設計原型分享。

相關問題