我已经看过一些关于跨平台设计的信息。然而,我找不到一个问题的答案。
我想做的是用Delphi (视窗)和X-Code (Mac)设计我的用户界面,程序的底层是操作系统不可知的C++代码。这有可能实现吗?我看到很多关于跨平台编译器、框架和GUI工具的讨论,但我真的想让这些界面保持100%的原生。
如果这是一个荒谬的问题,请原谅我,但我对编程和学习的世界还是比较陌生的。我的公司有一个在过去15年中开发的用于windows的Delphi应用程序的广泛目录,而Delphi是我去年花了大部分时间的地方。
发布于 2011-07-30 06:26:00
如果你习惯于使用Object Pascal,可以看看FreePascal编译器和Lazarus,它是一个免费的跨平台集成开发环境(可用于Windows、Linux、Mac )。
发布于 2011-07-29 05:09:48
你应该看看100%原生编程的wxWidgets http://www.wxwidgets.org/。
从我的角度来看,我看不出在两个(或更多)目标平台上使用两个不同的特定gui设计器有什么好处。如果平台特定的部分在你的架构中被清楚地分开,那么共享代码应该是很容易的。wxWidgets使您能够在两个平台上使用相同的gui定义,而不会丢失原生字符。
就我个人而言,我不会再使用C++进行UI设计了。但是你为什么要用两个IDE呢?我建议使用一种更抽象的语言(比如使用Netbeans/Eclipse的Java,或者使用VS/Blend的更好的C#/.Net )来处理UI/事件/交互内容,只保留本机优化的二进制代码中的某些特定部分。
.Net/Mono可以为ui样式使用不同的工具包。今天,我认为,在UX和外观的上下文中“原生”确实意味着要遵循系统特定的指导方针。这可以通过视图和adpaters来实现(有关一些设计模式,请参阅google )。外观和感觉只是应用程序样式的一个点,它也可以是一个原生的风格。在WPF-world中,句柄仅用于主窗口(以及一些使用windows窗体的传统兼容性原因),但是如果你像以前的win-api-one那样设计你的应用程序,用户不会感觉到不同。
Qt还为C++世界提供了一种独立于平台的方法,但并不是真正的原生方法。Qt使用原生的外观绘制自己的控件(如果需要),并且还提供了在不同平台之间使用/共享UI的一个定义的选项。
发布于 2011-07-30 15:30:30
你的问题无论如何都不是荒谬的-你正在寻找一个我们已经处理了很多年的问题的解决方案-如何实现跨平台兼容性和代码重用。但也许有几点你需要澄清一下:
正如其他人所说,C++不是唯一的“操作系统不可知”语言--事实上,大多数语言都是“操作系统不可知”的--通常不是(也不能是)操作系统不可知的是编译器、图形库等。Pascal、C++、Python、C#、Java和许多其他语言都有适用于各种操作系统的C++,其中大部分是开源的。
如果出于某种原因,你被设置在C++上,请查看Embarcedaro C++ --一个使用C++而不是Object Pascal的Delphi克隆。
我想你应该研究一下Qt:http://doc.qt.nokia.com/latest/index.html - Qt是一个优秀的“操作系统不可知”框架,它包括图形用户界面小部件以及许多其他功能强大的库,几乎涵盖了现代PC计算的所有范围。
虽然c++是Qt开发的原生语言,但有相当多的“语言绑定”可以使其他语言的Qt编程成为可能。(根据绑定实现的不同,支持不同程度的功能)我知道有一个使用Lazarus的Qt对象Pascal语言绑定-我还没有尝试过,但听起来非常有趣。
另外,需要注意的是:将图形用户界面从应用程序的“底层内部”分离出来,使得它与操作系统无关,这在复杂的应用程序中可能是相当具有挑战性的--我认为一个很好的起点是阅读范例。
HTH
https://stackoverflow.com/questions/6865571
复制相似问题