3

我想开始一个新的(开源)项目,我希望它在 Windows 和 Mac OS X 上是跨平台的(Linux 也很好!)

我愿意为每个平台开发单独的前端,但核心逻辑应该共享。

我需要以下内容:

  • 最好是原生 GUI 小部件集
  • FTP 连接(独立于平台的包装器)
  • TreeListView(同样,最好是独立于平台的包装器)

我已经研究了很长时间,我发现这些解决方案非常有吸引力:

  • Mono,在 Windows 上使用 WinForms,在 OS X 上使用 MonoMac
  • Lazarus (FreePascal) 与 LCL

单声道优点:

  • 使用 C#,这是一种非常好的语言
  • 具有适用于 OS X 和 Windows 的小部件集

单声道缺点:

  • Mono 框架是我的应用程序的依赖项

Lazarus 与 FPC 专业人士:

  • Pascal 也是一门很棒的语言,而且我知道如何使用 Indy 的 FTP 控件。
  • VirtualTreeview,这是我见过的最好的 treelistview 控件!
  • 可以交叉编译
  • 还具有适用于 Windows 和 OS X 的小部件集
  • 没有框架依赖!

Lazarus 与 FPC 缺点:

  • 似乎支持正在消亡,但也许这只是我。
  • VirtualTreeview 似乎只有 Windows 端口。
  • 可执行文件可能会变得非常大,但这可以修复。

我还用 FireMonkey 研究了 Delphi XE2,但它不使用原生控件,而且由于抗锯齿,它看起来并不原生。:(

现在,我最担心的是,我似乎找不到适用于 Windows 和 OS X 的 TreeListView!我真的需要一个带列的树视图。

重点在于具有跨平台 TreeListView 的技术,该技术有效且仍受支持。

感谢您的时间!

4

2 回答 2

1

我强烈建议反对帕斯卡。
这是一种垂死的语言,正如您所注意到的,支持会随着时间的推移而减少。
使用更现代的语言提出问题并获得答案的机会要大得多。

.NET/Mono 是一个不错的选择。
.NET 在 WPF 中有 TreeView,但它没有在 Mono 中实现,据我所知,它永远不会实现。

我建议检查的另一个选项是 Java(或者更好 - 其他基于 JVM 的语言,例如 Scala)。
非常跨平台(可能是最跨平台的语言),支持不错,语言还在不断发展(虽然卡了几年),语法+代码风格和C#很相似(不支持LINQ等),这使得从一个移动到另一个非常简单。
JVM 是一个先决条件,但这并不是什么大问题,因为它已经安装在大多数机器上。

于 2012-08-26T12:46:46.690 回答
0

多年前,我将 Qt 和 wxWindows/wxWidgets 用于 Windows 和各种 *NIX 变体的单一代码库 UI。

坦率地说,我已经很多年没有和他们一起工作了,我也不知道他们对 Mac OS X 的支持有多好,但如果你愿意使用 C++(它们都是 C++ 库),它们可能值得一看。

于 2012-08-26T12:46:25.740 回答