具有最简单学习曲线的 C++ GUI 构建选项是什么 - VS/Qt/wxWidgets/等等?

2024-04-24

我希望能够尽可能快速、轻松地构建 GUI 应用程序。我有能力(虽然不是专家,也没有接受过正式的培训)C++,但从未使用过 GUI 构建工具包或框架或任何东西。我不是专业程序员,在构建 GUI 应用程序方面完全没有经验且无知。花了几个小时研究试图弄清楚该怎么做;但只会变得更加困惑和沮丧。

Qt 和 wxWidgets 似乎是跨平台应用程序最流行的选择,尽管跨平台对我来说不一定那么重要;如果这意味着最快的学习曲线,则仅使用 Windows 就可以了。

Qt 看起来很酷,Qt Creator 看起来很漂亮,有很多很好的演示,除了它有自己的所有类,而且我不太热衷于学习一堆只适用于 Qt 平台本身而不是更普遍的东西。我想我可以避免使用 Qt 类,除了 GUI 类,我必须使用它们,但我不知道这样做是明智还是不明智。

我本以为 Visual Studio 的学习曲线是最小的,但是当我打开一个测试 GUI 应用程序时,我看到到处都是一堆看起来很外国的东西,比如克拉 (^) - 我在网上发现这些意思是“句柄”,这我什至无法理解其定义或目的(“有点像指针但不是真的”基本上是我读到的人们定义它们的方式)。

我对 wxWidgets 几乎一无所知,也不知道它与 Qt 相比如何。

因此,每个选项都有一个很大的学习曲线 - 理想情况下,我想知道哪一个可以最大限度地减少您学习工具包/框架本身的时间。由于我可能永远不会从我创建的程序中赚钱,因此我花在学习特定工具包上的时间将非常昂贵。我只是希望能够使用我所拥有的 C++ 知识制作一个功能性程序,但以 GUI 形式。目前看来,如果我想制作一个 GUI 应用程序,我必须花更多的时间来学习我使用的 GUI 框架,而不是编写应用程序本身的功能部分。

任何来自比我更明智、更有经验的人的意见将不胜感激:)


首先,也是最重要的,从简单开始。这个话题有很多内容。如果你觉得很难,不要试图一下子接受它。

大多数优秀的 GUI 软件包都有教程。我能给出的最好建议是你尝试每一个,或者至少尝试其中几个。它们是对您选择的图书馆的最好简短介绍,如果它们有任何好处,它们会缩小您首先需要吸收的内容。这会给你一些比较的基础,因为他们每个人都在尝试做非常相似的事情(在完成之前你会看到其中一些),但他们有不同的感觉。您可能会发现您对其中一种有偏爱,并且需要认真对待。它还会让您了解 GUI 编程的难点:separate从一个包装的细节来看,如果你只使用过一个,你就不会看到它。就我个人而言,我发现这类知识非常有帮助,因为它让我不再被细节吓倒。

以下是一个地方的教程列表,尽管您可能已经看过它们:

  • Qt的教程 https://doc.qt.io/qt-5/qtexamplesandtutorials.html
  • WxWidgets 的教程 http://www.wxwidgets.org/docs/tutorials.htm
  • GTKMM 书 http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/index.html. Not quite一个教程,虽然有很多例子。
  • .NET 教程,适用于 WinForms 或 WPF。

其次,在我看来,你需要深入了解conceptsGUI 编程的一部分,而不仅仅是特定的库。在这里,书是无可替代的。我不太了解所有这些工具,但其中最好的不仅会教您工具包的细节,还会教您一般概念以及如何使用它们。不过,这里有一些可以开始的列表(一旦你有了标题,亚马逊和 Stack Overflow 将帮助你选择一个):

  • Qt 书籍列表 http://www.qtsoftware.com/developer/books
  • WxWidgets 书 http://www.wxwidgets.org/docs/book/ (PDF版本 http://www.informit.com/content/images/0131473816/downloads/0131473816_book.pdf)
  • 有大量的 WPF 和 WinForms 书籍。不幸的是我不能在这里提出好的建议。

第三,利用设计工具(Qt Creator、VS的表单构建等)。Don't首先尝试通读它们生成的所有代码:首先运行您自己的小程序。否则很难知道什么对基本程序重要,什么不重要。细节会丢失。一旦你掌握了基础知识,Do使用它们作为参考来学习如何实现特定效果。如果您可以在设计工具中使用一些东西,那么您可以看看特别的他们生成的代码可以尝试您自己的手写程序。它们对于中级学习非常有用。

我不太热衷于学习一堆只适用于 Qt 平台本身而不是更普遍的东西。

我附议comment https://stackoverflow.com/questions/1189084/whats-the-c-gui-building-option-with-the-easiest-learning-curve-vs-qt-wxwidg/1189334#1189334GRB在这里:不用担心这个。无论您使用哪个工具包,您都需要学习许多特定于该工具包的知识。但你也会学到很多东西general使用任何像样的工具包进行 GUI 编程,因为它们必须涵盖许多相同的内容。布局、事件、小部件/控件之间的交互、了解计时器——这些都会出现在您使用的任何 GUI 工具包中。

但是请注意,任何严肃的 GUI 包is时间的投资。如果您决定选择一个软件包,那么学习第二个软件包会更容易,但是每个大型图书馆都有其个性,您的大部分时间将花在学习它的怪癖上。我认为,这是处理任何复杂主题的必然条件。

我想我可以避免使用 Qt 类,除了 GUI 类,我必须使用它们,但我不知道这样做是明智还是不明智。

您不需要 Qt 的大多数非 GUI 类即可正确使用 Qt 的 GUI。有一些例外(例如QVariant)您需要它只是因为 GUI 类使用它们。我发现你可以根据具体情况来学习这些内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有最简单学习曲线的 C++ GUI 构建选项是什么 - VS/Qt/wxWidgets/等等? 的相关文章

随机推荐