对于使用C++编写的学生来说,学习编写GUI有什么好处:C#vs QT?

fla*_*nik 14 c# c++ user-interface

我是大学CS的老师(讲师).该课程基于Cormen和Knuth以及学生用C++编写的程序算法.但有时,通过GUI显示算法的工作原理或任务结果是很好的.在我看来,能够编写完整的程序是非常重要的.他们将有关于GUI的课程,但实际上,在毕业之前的三年.我认为他们应该能够更早地编写简单的GUI应用程序.所以我想教他们.

您如何看待,对他们来说学习更有用:使用QT编程GUI或在C#中编写GUI并调用非托管C++库?

更新.

对于开发C++应用程序,学生使用MS Visual studio,因此已经安装了C#.但QT AFAIK也可以集成到VS.

我有以下C#的优点(有些人在答案中提出):

  • 需要制作一个额外的图层.这是更多的工作,但它会强制您明确指定GUI和处理数据之间的契约.GUI和算法之间的界限变得非常清晰.
  • 它在雇主中更受欢迎.至少,在我们居住的俄罗斯.在C++中编写性能关键算法并通过好看的C#application/ASP.Net网站进行PInvoke它是相当普遍的.也许它在世界其他地方并不是那么普遍,但在俄罗斯,由于某些原因,Windows非常受欢迎,特别是在公司和公司中,因此大多数b2b应用程序都是Windows应用程序.
  • 快速发展.由于许多原因,在C++中使用C++进行编码要快得多.

而且它是一种新的语言,专门针对学生.和调用库的混乱.

Mic*_*yan 14

最好让学生熟悉Qt,因为Qt实际上是C++.C#是一个完全不同的野兽,如果你使用C#,你很可能会让你的学生对微软或C#特定的东西与ISO C++标准中实际定义的东西感到困惑,而这对于只是C++.此外,Qt和C++是可移植的,因此使用Mac OS X或Linux的学生会感谢您选择跨平台框架(Qt也适用于Windows); 然而,如果您使用C#,您将强制您的学生使用Windows(是的,有Mono,但它不能像Qt跨平台那样工作).

您可能也有兴趣使用我的C++项目模板,该模板提供了足够的基础设施,可以使用CMake在C++中扩展Qt GUI应用程序,并且经过测试和验证可以在Mac OS X和Ubuntu Linux下运行(如果我在Windows上得到反馈的话) ,我会确保它也在那里工作).该模板包含在使用"--gui"命令行选项运行时在Qt中显示"Hello World"GUI的代码.


Pet*_*der 6

我推荐Qt只是因为它是C++,而不是C#.

C++和C#之间的接口可能很混乱,在我看来会分散学生的注意力(算法,如你所说).