CSharp - 在 wpf/C# 和 qt/c+ + 之间选择

  显示原文与译文双语对照的内容

我和我的团队正在开发一个应用程序,它涉及一个用 C++ 编写的后端。

现在,我们需要开发一个与这个程序接口的界面,这样GUI就可以显示图像,用户可以与图像交互,用户可以与图像进行交互,然后运行图像处理算法,以显示结果。

对于GUI而言,我在WPF和Qt之间选择了一个。更容易,比Qt更强大,但是我不太担心。 另外,WPF使用了DirectX技术,我可能需要使用它在以后的阶段生成一些 3-D 可视化。

请帮助我使用这些点:

  • 能否直接与 C++ ( 而不是使用可视化 C#) 接口?
  • 如果( 点 1 ) 是不可能的,那么考虑以下事项: 我的代码会比在 C++ 中使用非托管非托管代码要小,所以我可以使用 C# 来调用 Qt?

( 我有一个下沉的感觉,我必须写太多的代码与WPF接口,这可以能等于重写一半实际程序本身。 :- ( )

时间: 原作者:

我已经把Qt和 C++ 和WPF一起使用了。 我更喜欢WPF作为用户界面框架。 Qt并不坏,尤其是 post 4.0. 我甚至不会接触到早期的Qt版本。

就像其他人在评论中所说的,WPF文档更好,而且在线社区更大。 如果你正在查看样式化应用程序,WPF肯定是。 新的,语言是一个很好的步骤,但是因为它是如这里的新新。 WPF已经存在更长的时间,而且功能更加成熟和更丰富。

但是,我认为你的案例中的真正问题是你拥有的C++ 代码库。

WPF需要 C++/CLI 层( 托管 C++ ),以便与 C++ 代码库正确接口。 这听起来复杂,并且需要一些工作,但它并不像声音那么杂乱。 还有很多关于这个的文档。 我个人会远离 PInvoke 。

Qt有点简单,因为它是基于 C++的,但是在 C++ 本机类型之间有一些转换,以及在内部使用Qt类型。

另一个需要考虑的事情是你希望你的UI有什么外观和感觉。 例如,如果你想要一个好的带状( Office 2008,2010 ) 外观,那么你将不会用 Qt 。 另外,有大量第三方WPF控件,但我没有找到很多关于Qt的控件。 在某些情况下,购买一组不错的控件来补充微软默认提供的控件是非常方便的。

在过去几年中,我们没有需要使用WPF的linux UI,不管代码基础如何。 我们还没有后悔。

但是我也会提出第三个选择。 代码jock是一个基于MFC的UI框架,相信。 它是 C++ 和 ActiveX 。 它已经变得相当复杂了。 看这里,这里是

编辑:自我第一次看它以来,QML已经come了。 我没有时间来深入观察它,但是从我听到的,它提供了一些非常有趣的特性。 这是值得的。

另外,还有几个注释,比如功能区,如功能区,还有一些图表和图形控件。 这些确实让Qt成为一个。

我稍后会说,作为一个程序员,我发现与WPF的ui很容易,而且我的结果比以前编码的更高。

原作者:
...