2011-07-28 37 views
4

我查看了跨平臺設計的一些信息。然而,我找不到一個問題的答案。CrossPlatform上的信息

我想要做的是設計我的用戶界面在德爾福(Windows)和X代碼(Mac)與該程序的底層膽量是操作系統不可知的C + +代碼。這有可能實現嗎?我看到很多關於跨平臺編譯器,框架和GUI工具的討論,但我確實想讓接口保持100%原生。

請原諒我,如果這是一個荒謬的問題,但我對編程和學習的世界相對較新。我公司在過去的15年裏爲Delphi開發了大量的Delphi應用程序目錄,德爾福也是去年我度過的大部分時間。

+0

德爾福是uncrossplatform。這些只是閒談。 –

+0

@Downvoter Delphi的語言還是Delphi的IDE? FPC編譯Delphi代碼。在限制內。 – mjn

回答

4

如果您願意與Object Pascal一起工作,請查看FreePascal編譯器和Lazarus這是一個免費的跨平臺IDE(適用於Windows,Linux和Mac OS X)。

+0

謝謝你。我會仔細看看的。 – JamesW

3

你應該看看wxWidgets http://www.wxwidgets.org/編程100%本質。

從我的角度來看,我看不到爲兩個(或更多)目標平臺使用兩個不同的和特定的gui設計器的好處。如果平臺特定的部分在體系結構中明顯分離,那麼共享代碼應該很容易。 wxWidgets使您能夠在兩個平臺中使用相同的gui定義,而不會丟失本地字符。

個人而言,我不會再使用C++進行UI設計。但爲什麼你使用兩個IDE?我建議使用更加抽象的語言(比如像Netbeans/Eclipse的Java或者更好的C#/ .Net with VS/Blend)來保存這個UI /事件/交互的東西,只保留一些本地優化二進制代碼中的特定部分。

.Net/Mono可以爲UI風格使用不同的工具包。今天,在用戶體驗和外觀和感覺方面是「本土的」,我認爲這意味着遵循系統特定的指導原則。 這可以通過意見和adpaters達到(谷歌的一些設計模式)。 外觀只是樣式化應用程序的一個要點,它也可能是本地風格。在WPF世界中,句柄僅用於主窗口(以及使用Windows窗體的一些傳統兼容性原因),但如果您正在像以前的win-api-ones樣式化應用程序,用戶不會感覺到不同。

Qt還爲C++世界提供了一個獨立於平臺的方法,但並不是真正的本地方法。 Qt使用本地外觀和感覺(如果需要)繪製自己的控件,並且還可以選擇在不同平臺之間使用/共享UI的一個定義。

1

你的問題並不荒謬 - 你正在尋找解決我們多年來一直在處理的問題 - 如何實現跨平臺兼容性和代碼重用。但也許有一點你需要澄清:

正如其他人所說,C++不是唯一的'操作系統不可知'的語言 - 事實上大多數語言是'操作系統不可知論' - 通常不是(也不能be)操作系統不可知的是編譯器,GUI庫等等.Pascal,C++,Python,C#,Java和其他許多SDK都有各種操作系統的SDK,大部分都是開源的。

如果由於某種原因您設置了C++,請查看Embarcedaro C++ - 使用C++代替Object Pascal的Delphi克隆。

和海事組織您應該調查的Qt:http://doc.qt.nokia.com/latest/index.html - Qt是一個優秀「與操作系統無關」的框架,包括GUI部件以及跨越非常現代PC計算的整個範圍內許多其他強大的庫。

儘管C++是Qt開發的本地語言,但也有相當多的「語言綁定」可用於使Qt編程成爲可能。 (支持不同程度的功能取決於綁定的實現)我知道有一個使用Lazarus的Qt的Object Pascal語言綁定 - 我還沒有嘗試過,但它聽起來很有趣。

另外,提醒一句:從應用程序的「根本膽量」分離你的圖形用戶界面,使得它與操作系統無關可以在複雜的應用程序非常具有挑戰性的 - 我認爲一個良好的開端是閱讀MVC範例。

HTH