我们可以使用 QT 和 C# 来创建 GUI 吗?

Posted

技术标签:

【中文标题】我们可以使用 QT 和 C# 来创建 GUI 吗?【英文标题】:Can we use QT with C# to create GUI? 【发布时间】:2015-11-16 17:58:27 【问题描述】:

我是 C# 新手,我只需要知道我们是否可以使用 QT 来使用 C# 创建漂亮的 GUI。我知道 QT 支持 C++。但是 C# 呢?

【问题讨论】:

Best C# bindings for Qt?的可能重复 你可能想看看我写的一个项目:github.com/pauldotknopf/net-core-qml 【参考方案1】:

.Net C# 和 QT 是完全不同的框架,但有.Net binding for QT

我的建议是不要组合框架,它们会引入这么多问题,正如你所说,你是初学者,你可以学习 Telerik UI 以获得漂亮的用户界面

编辑:

如果您打算将它们结合起来而不考虑建议,那么至少在最有意义的地方这样做。使用一个框架在另一个框架上编写一个特定的“层”。例如,在 QT 中编写您的 GUI,但在 C# 中编写您的数据和/或业务逻辑层等......这将是我尝试组合不同框架的最低级别。 Gmiley 是对的,我在 Arduino 工作时也做过同样的事情

【讨论】:

如果您打算将它们组合起来而不考虑建议不要这样做,那么至少在最有意义的地方这样做。使用一个框架在另一个框架上编写一个特定的“层”。例如,用 QT 编写你的 GUI,但用 C# 编写你的数据和/或业务逻辑层等......这将是我尝试组合不同框架的最低级别。 @gmiley 我按原样添加了您的建议,因为它的措辞完美并节省了我的时间,欢迎您编辑此答案。 有一个新项目(我写的)可用于 Qml 与 .NET 的集成。将您的 GUI 保存在 Qml 中,将业务保存在 .NET 中。 github.com/pauldotknopf/net-core-qml 非常有趣,看到QtSharp...建议只是指定x86(32位)编译...但是,与其他依赖项(附加dll,如我的情况)集成,实现必须使用x64编译...嗯...有趣的时间 Telerik UI 不是免费的,而且要花一大笔钱【参考方案2】:

官方 Qt 项目支持以下语言: c++,Qml(快速项目), html ,CSS,javascript,JSON,xml //我注意到html,css,json,xml不是语言编程,是Contract

其他分支:

项目 Qt Jambi - 官方网站 jambi 用于java编程

PyQt - 用于 Python 编程 https://wiki.python.org/moin/PyQt

对于我没有看到的 C# 健壮项目。

【讨论】:

【参考方案3】:

我现在冒着对这个答案有很多不喜欢的风险,但我建议在添加不喜欢之前 - 你让自己非常熟悉 C# / .net 技术,尤其是将它与本机 C++ 混合使用。我想说的是,C#总体上还是有很多缺点的,所以在选择它之前要对技术进行三重分析。

这是一个文档,描述了 C# 开发的总体问题:

https://docs.google.com/document/d/17QDpLtQ1ttw7rHxwstPH_9SEOhVtSuqAGhC7xt_GbCs/edit

所以我的建议 - 只选择一种技术:基于 C++,如果您有一些基于 .net 的组件,请尝试最终摆脱它们。

除了 QT 之外,还有其他替代方案,例如:

WxWidgets - https://www.wxwidgets.org/(请参阅此处的介绍视频:https://www.youtube.com/watch?v=FOIbK4bJKS8) JUCE - https://juce.com/ - UI 框架(商业开源代码) Godot - https://godotengine.org/ - 游戏引擎,主要面向游戏,但在一定程度上支持 UI(完全开源代码,MIT 许可证)

至于 Godot - 有一篇很好的文章描述了 godot 的用户界面及其替代方案,请参阅以下链接:https://medium.com/swlh/what-makes-godot-engine-great-for-advance-gui-applications-b1cfb941df3b

【讨论】:

相当多的 .net 核心已经修复了很多这些问题。 @TarmoPikaro 所以一年前你错了。 .NET Core 于 2 年多前问世,早在您写到 C# 没有跨平台支持之前。其次,C# 和 .NET 通常比 C++ 更多地用于大型项目。第三,你在一个地方称 YAML 是一种令人难以置信的混乱 UI 技术,然后你吹嘘 android 接管了世界,尽管他们也使用 YAML。这又是一个荒谬的论点,因为它与 C++ 或 C# 无关。 确实存在 Xamarin,它应该是可移植的,但我还没有看到功能齐全的规模 - 大约半年前我尝试使用 Xamarin,但整个安装/设置不起作用那时。 Xamarin 可能适合您,也可能适合 10-100 人,但如果它不适用于 1000 - 整个“平台”有什么意义? YAML / Android - 不确定,还没有研究过,但它是 WPF/XAML 技术,它很乱。基本上你现在已经尝试评论 2 分(满分 10 分),但剩下的点呢? 引用的文档就像那些点击诱饵“新闻”文章之一。充满误导性的半真半假和完整的虚构。我会在您的声誉受到进一步损害之前将其删除。 我也不是 wpf 的粉丝,但是这个文档写得真的很糟糕。尤其是这个随机图根本没有基础。

以上是关于我们可以使用 QT 和 C# 来创建 GUI 吗?的主要内容,如果未能解决你的问题,请参考以下文章

值得花时间学习 Qt (c++) 吗?

使用带有 C# Gui 的 QT 后端的好资源

Unix 和 Windows Server 上的 GUI 开发

我可以使用 Qt Creator 创建控制台应用程序吗?

由于找不到qt5gui.dll,无法继续执行代码有影响吗

是否可以从 Qt Gui 应用程序创建 .exe 文件 [重复]