簡體   English   中英

使用復雜的GUI編寫跨平台應用程序

[英]Writing cross-platform application with a complex GUI

我想開發一個帶有復雜GUI的應用程序(帶動畫的組合框,帶樣條的圖表,透明層......)。 我有很好的C#2.0經驗,而且我正在學習WPF,但我讀到了,遺憾的是,沒有計划將WPF移植到Mono。

  • 如果我堅持使用C#並使用OpenGL創建自定義GUI控件(通過OpenTK ,我覺得這將是一項艱苦的工作(與GTK集成,調試,難以用於設計表單)。

  • 我可以使用Java(使用JOGL) ,但我不熟悉它,而且我不了解性能問題。

  • 最后一個選項是C ++ ,但我必須做一個大的修訂 (自上次使用它以來的幾年),我發現很難用C ++開發GUI和便攜式應用程序。 (也許我錯了!不過,我很害怕用這種語言開發這么復雜的應用程序。)

你有什么建議? 我最好選擇C#+ OpenTK,Java + JOGL還是返回C ++?

我會選擇Qt。 請訪問http://qt.nokia.com/products/ 如果你害怕C ++(但沒有理由害怕它),你可以試試Java Swing。 我認為這些是多平台桌面GUI開發的最佳選擇。

我建議使用Mono和GTK#。 使用.Net開發應用程序遠比在C ++中使用它更有效。 當然,你必須堅持使用C#3.0和.Net 2.0(實現3.5的一些功能,如LINQ)。 但它仍然比C ++提供更多,例如QT,會給你。

轉到C#以提高工作效率。 對C ++沒什么,但它有點冗長。 至於GUI庫,我認為WinForms曾經在Mono上工作。 或者,GTK#。

我不建議使用wpf,因為它是一個依賴於平台的平台。 Silverlight可能是更好的選擇。

但是,如果你正在開發一個Web應用程序,jquery將是一個不錯的選擇,你也可以考慮adobe flex和adobe air; http://www.adobe.com/products/air/

多平台是否必須包含iDevices? 它可以在網上嗎? 這是你必須首先回答的兩個問題。

如果你可以沒有iPad / iPhone支持,那么Flex / Flash / Air是高度圖形化的好東西。 它是一個多平台,可以確保並輕松地集成到Web上。 對於這種情況,可能是您提供有限細節的最佳選擇。

Qt也適合你,雖然我不能確定它的圖形庫是否會讓它變得簡單。 我個人從未使用它,所以其他人必須回答這個問題。 但由於它是在C ++中,您也可以使用其他庫。

對於這種復雜的GUI,Java Swing聽起來很粗糙。 制作一些基本的東西並不算太糟糕,但如果你期待像C#這樣的體驗,我想你會感到沮喪。 當然只是個人意見。

最后,如果它可以是一個Web應用程序,為什么不堅持使用C#和Silverlight? .NET解決方案可能適合您,因為您已經在學習它。

首先,不要將C#用於任何便攜的東西。 對於GUI來說,Mono是一個糟糕的選擇,原因有兩個:

  1. Mono總是落后於.NET幾步。
  2. Mono不支持WPF,因此開發GUI的唯一方法是使用類似GTK#的東西。

我的個人意見 - 使用C ++。 它會給你非常好的便攜性和獨立性。

您有兩種選擇:

  • Qt4 - 非常好的GUI工具包,使GUI開發變得非常簡單,並且非常便於攜帶。
  • GTKmm - 也是非常好的工具包,但在Windows上感覺不太自然。

此外,Java還提供了JDK附帶的Swing工具包,並且可以在所有Java平台上使用,甚至是像OpenVMS這樣非常奇怪的平台。

Silverlight可以在Windows / Mac / Linux和一些手持設備上運行,並且可以移植到更多的手持設備上。 我相信Silverlight最終會被移植到每個流行的設備上。

Silverlight是:

  1. 比Flex / Flash / Air強大得多。
  2. 比Qt強大得多。
  3. 比GTK +或GTK#更加強大。
  4. 比JOGL更加強大。

Silverlight具有您所要求的所有功能。

Silverlight與C#配合得很好,C#比C ++更有效。

Silverlight基本上是WPF的一個非常大的子集,因此如果您已經了解WPF,那么您已經了解了Silverlight。

除非您絕對需要iPhone / iPad支持,否則我認為這個決定非常明顯。

看看WPF和Cocoa的這種比較,以了解WPF / Silverlight與Qt,Flash / Flex / Air和GTK#之類的比較,所有這些都使用類似於原型類似於WinForms的對象模型。可可。

在我的日常工作(一家知名的微處理器公司),我們使用Java,Eclipse RCP和Java OpenGL開發復雜的工程應用程序。 性能很好 - 我們可以輕松獲得數百萬個多邊形/秒和高達100幀/秒。 Eclipse中的SWT小部件足夠快,我們不必使用JOGL渲染任何自定義控件。

我有一套教程,展示了如何開始這種編程。 該系列以http://wadeawalker.wordpress.com/2010/10/09/tutorial-a-cross-platform-workbench-program-using-java-opengl-and-eclipse/開頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM