2009-01-20 12 views
11

Tôi là sinh viên đại học mù đang giới thiệu về lớp lập trình tập trung vào thiết kế giao diện người dùng. Lớp đang sử dụng Xử lý, điều này hoàn toàn không thể truy cập được. Tôi đang tìm một ngôn ngữ cho phép tôi tạo GUI mà không cần kéo và thả và hy vọng đủ thông minh để thực hiện hầu hết bố cục mà không buộc tôi chỉ định vị trí kiểm soát bằng pixel.Ngôn ngữ tốt nhất để tạo nhanh giao diện người dùng mà không cần kéo và thả?

Tôi biết Perl, Java, C/C++, C# và HTML. Tôi đang cân nhắc việc tạo các ứng dụng HTA. Yêu cầu duy nhất của tôi là ngôn ngữ phải chạy dưới MS Windows và không được sử dụng SWING hoặc GTK làm bộ công cụ cơ bản.

+0

Câu hỏi hay - hãy nhớ cập nhật để cho chúng tôi biết bạn đã tham gia như thế nào! – Polsonby

Trả lời

2

Nói như một lập trình viên mù:

  • C# + WinForms: Bạn có thể tạo mã bằng tay và sử dụng cán bộ quản lý bố trí hoặc tính toán kích thước trong đầu của bạn, hoặc nếu bạn đang sử dụng trình đọc màn hình JAWS sau đó có các kịch bản sẽ giúp bạn trong thiết kế WinForms.
  • C# + WPF: Tại đây bạn xác định giao diện người dùng của mình bằng XML, nhưng việc đầu của bạn trở nên phức tạp hơn. Chắc chắn nhìn vào điều này vì nó là một giải pháp rất tốt đẹp. vấn đề khác với WPF tại thời điểm này là không phải tất cả các trình đọc màn hình đều hỗ trợ công nghệ mới này.
  • Jamal Mazrui tại www.EmpowermentZone.com đã tạo thứ gì đó có tên "Bố trí theo mã", nhưng tôi không có kinh nghiệm với điều này.
  • HTML + Javascript sẽ đẹp, nhưng tôi nghi ngờ nó sẽ được cho phép trong khóa học của bạn.
  • WXWidgets: Tôi không có nhiều kinh nghiệm với bộ công cụ giao diện đa ngôn ngữ, đa ngôn ngữ này, nhưng tôi tin rằng nó có trình quản lý bố cục và do đó được một số lập trình viên mù tôi sử dụng.
  • Cuối cùng, tôi đã từng thiết kế kịch bản tài nguyên Win32 bằng tay, tính toán kích thước trong đầu của tôi (không có trình quản lý bố cục). Điều này chắc chắn có thể đạt được nếu bạn muốn thực hiện tuyến đường này.

Tóm lại, WPF đẹp, nhưng đảm bảo trình đọc màn hình của bạn hoạt động với loại ứng dụng này. Các thay thế tốt nhất tiếp theo có lẽ là WinForms. Nếu bạn thích Layout By Code sau đó sử dụng nó, nhưng nếu đây là một kỹ năng bạn muốn cho việc làm, thì hãy ghi nhớ điều đó.

+0

Tôi đã sử dụng quá trình xử lý với trình đọc vì các chương trình rất đơn giản nên nhanh hơn để làm điều đó, sau đó tìm hiểu cách khác để tạo giao diện người dùng. Tôi đã sử dụng C# sau khóa học với các kịch bản hàm và nó là tốt để tạo nhanh các giao diện có thể truy cập. – Jared

1

hãy xem XAML. Tôi nghĩ đây có thể là một khởi đầu tốt cho cả người sáng tạo Windows và Web UI hiện đại.

+0

Tôi đến đây để nói điều này chỉ để thấy rằng nó đã được nói. :) –

+0

Tôi thực sự tìm thấy xaml cực kỳ khó để làm việc với –

1

Tcl/Tk sẽ thực hiện chính xác những gì bạn muốn. góilưới trình quản lý bố cục dựa trên vị trí tương đối hợp lý của các tiện ích.

Mặc dù ngôn ngữ "gốc" của Tk là Tcl, nhiều ngôn ngữ khác có liên kết Tk.

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

Tôi có thể thử sử dụng C#. Nó có giao diện thân thiện hợp lý cho các cửa sổ điều khiển chung và giống như ngay cả khi không sử dụng kéo và thả. Chỉ cần không sử dụng các nhà thiết kế và mã như bình thường.

0

Tôi không lập trình bằng Java nhưng tôi biết rằng Java cung cấp cho việc tạo lập trình giao diện người dùng và cung cấp một số thành phần Quản lý bố cục tuyệt vời (Gốc với Java mà không yêu cầu SWING). Lần đầu tiên tôi tiếp xúc với Trình quản lý bố cục trong những ngày cũ của X11 với X Toolkits (bất kỳ ai nhớ Motif, OpenLook, HP Open View?) Và Java dường như đã áp dụng công nghệ tương tự.

Bạn có thể tạo Windows, Hộp thoại và Menu tất cả từ trình quản lý bố cục đơn giản.

0

Được nhìn thấy bản thân mình và không làm việc quá chặt chẽ trên bất kỳ thứ gì đã từng được kiểm tra khả năng truy cập hoặc truy cập nhiều bởi người dùng khiếm thị, tôi không nghĩ câu trả lời của tôi sẽ cực kỳ triệt để. Tuy nhiên, bản năng đầu tiên của tôi là nói rằng một số kiến ​​trúc máy chủ web động tạo HTML như C#, PHP hoặc ColdFusion sẽ phù hợp với mô tả của bạn về việc xử lý hầu hết bố cục cho bạn mà không yêu cầu bạn chỉ định vị trí kiểm soát bằng pixel. Có chắc chắn là có sẵn để xác định vị trí kiểm soát trong pixel thông qua CSS, nhưng nó không cần thiết. Và tôi biết HTML cũng có các tiêu chuẩn được xác định rõ ràng về khả năng truy cập, trong khi tôi không chắc chắn về trạng thái của các tiêu chuẩn trợ năng với các loại phần mềm khác.

3

tôi sẽ nói XAML đó sẽ là một lựa chọn tốt:

  • Pixel thao tác không cần thiết
  • mục chức năng trong mã đằng sau
  • thể thêm pixel thay đổi để kiểm soát sau
  • Có là rất nhiều tài liệu trên cách sử dụng nó

Có thể nếu bạn cung cấp cho chúng tôi ý tưởng về những gì bạn sẽ cần ngôn ngữ để chúng tôi có thể cung cấp cho bạn các đề xuất tốt hơn.

+0

Một điểm cộng: nó đi kèm với một môi trường tốt đẹp sẽ cung cấp cho bạn gợi ý (Intellisense) khi bạn gõ. – Ria

0

Bạn có thể sử dụng javascript và html.Có một cổng xử lý để javascript, vì vậy bạn biết rằng nó là đủ mạnh cho những thứ mà lớp học của bạn sẽ bao gồm. Bạn có thể viết html mà không biết một điều gì về nó trông như thế nào. Trong thực tế đó là cách ưa thích để viết html.

Nhược điểm chính của javascript không phải là chính javascript, mà là trình duyệt dom. Đó là giao diện điều khiển các phần tử html. Tuy nhiên, một thư viện như jquery, hoặc mootools, hoặc dojo có thể chăm sóc hầu hết những vấn đề đó.

Đối với Accessiblity, có một cái nhìn tại WAI ARIA cũng opera's intro to WAI ARIA .a

WAI ARIA là một cách để xây dựng các ứng dụng javascript giàu trong khi chơi đẹp với trình đọc màn hình. Nó rất tuyệt. Tôi đã không nhìn thấy nhiều công việc và niềm đam mê đưa vào làm cho các web stack có thể truy cập trong bất kỳ ngăn xếp lập trình khác.

1

Kiểm tra dự án này trên codeplex. Nó có thể giúp bạn (như là một thay thế cho chế biến & java) http://bling.codeplex.com/

ling là một thư viện C# dựa trên một cách dễ dàng lập trình hình ảnh, hình động, tương tác, và visualizations trên của Microsoft WPF/NET. Bling được định hướng theo hướng các nhà công nghệ thiết kế, tức là, các nhà thiết kế đôi khi lập trình, hỗ trợ trong việc tạo mẫu nhanh các ý tưởng thiết kế giao diện người dùng phong phú. Học sinh, nghệ sĩ, nhà nghiên cứu và người có sở thích cũng sẽ tìm thấy Bling hữu ích như một công cụ để nhanh chóng thể hiện ý tưởng hoặc hình ảnh hóa. API và cấu trúc của Bling được tối ưu hóa cho việc lập trình nhanh mã ném đi trái ngược với lập trình cẩn thận của mã sản xuất.

Bling như sau tính năng mà hỗ trợ trong việc tạo mẫu nhanh của giàu UIS:

* 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 là một dự án mã nguồn mở được tạo ra bởi Sean McDirmid và bạn bè để hỗ trợ trong thiết kế tạo mẫu nhanh. Chúng tôi đã sử dụng Bling để nâng cao năng suất và muốn chia sẻ nó với các nguyên mẫu thiết kế giao diện người dùng WPF khác.