在哪里学习使用Qt5?

时间:2015-06-12 07:04:44

标签: c++ qt qml

我尝试使用Qt5,但我发现它很混乱。

我对c ++有很好的了解(我会说在中级专家级别之间)但不了解javascript或QML(只有基本的HTML)

当我查看Qt提供的示例和教程时,我发现更多的是参考资料或类似的"什么是新的"已经使用Qt的开发人员的东西。它向我展示了庞大的Qt库的随机(非系统)部分。

我目前对使用基于Qt小部件的应用程序而不是基于Qt QML的应用程序更感兴趣。

所以这就是我想问的问题。

  1. QML是主要语言,C ++只是一种支持语言吗?换句话说,学习使用QT绝对必要的QML?

  2. 对基于c ++的应用程序使用Qt成为事实上的折旧事物吗? Qt现在只用于QML应用吗?

  3. 我需要学习什么才能使用Qt?

5 个答案:

答案 0 :(得分:8)

我开发了一些Qt应用程序,到目前为止还没有关于qml的任何知识。它肯定是新的方式,因为它比你所追求的更新,但是如果一切都将在Qt 6或7中的qml完成,我不知道。

所以回答你的问题:

  1. 目前我没有看到使用Qt开发基于桌面的应用程序需要qml的任何原因。移动设备可能有所不同,但到目前为止我没有经验

  2. 在Qt 5中,据我所知,没有迹象表明方式已被弃用。如果我错了,请纠正我

  3. 如果您已经对c++有了一个很好的理解,那么您需要学习的主要内容是Signals & Slots的原则以及桌面应用程序中使用的主要类(QApplication,例如QMainWindowQWidgetQObject

  4. 除了我建议下载&安装Qt(包括示例)并运行一些those examples。在Qt 4中,还有一个名为qtdemo的程序,我在Qt 5中找不到链接,因此我不知道它是否仍然存在。如果你有什么可以做的很好的例子,你可以掌握。

答案 1 :(得分:4)

目前没有很多关于Qt5的书籍,因此主要来源是官方文档和网络,但目前可用的书籍:

  • 免费书籍:Qt5 Cadaques,关于QML的书籍
  • 一般Qt书已更新至Qt 5.3,但俄语:Qt5.3. Professionalnoe programmirovanie na C++

    1. 不,我知道那些根本不使用QML的人,但是其他人比C ++更多地使用它。这实际上取决于你的需求。

    2. C ++是活跃的,例如Digia提供额外的not-free modules,就像Qt Charts一样,可以使用botj和QML和C ++。此外,Qt开发人员始终支持新的C ++标准。例如,我们在C++11C++14发布时有其他功能。因此,它绝对不是一种弃用的语言。

QML只是一种前端语言,构建漂亮的界面非常好,而且后端仍然是C ++代码。

答案 2 :(得分:3)

网上有很多Qt教程和资源。您只需使用搜索引擎即可找到所需内容。

您必须尽快学习的最重要的事情是信号槽的概念,原因有两个:

  1. 这是一个在几乎所有课程中广泛使用的基本概念。
  2. 即使您从其他库(例如boost.signals2)了解它,也可以使用connect函数和qmake预处理器以不同的方式实现它。
  3. 它根本不复杂。您可以将其视为编程方面的一个很好的帮助,但您必须了解如何使用它(它很简单)。

    在我看来,QML并不重要。它对移动应用程序很有用,但是,到目前为止,我开发的是仅限桌面的应用程序,而且我只使用C ++类就可以顺利开发。

    Qt是一个非常重要的框架,多年来一直使用,而QML最近才出现。很多应用程序都是用Qt而不是QML构建的。

答案 3 :(得分:3)

  1. 否。但由于新功能不再为QtWidgets开发(自2012年起),您不应该考虑它for new development
  2.   

    是的,我们在Qt 5中的Qt Widgets模块现在标记为   '完成',这意味着我们没有任何人积极致力于新事物   此时模块的功能。

    作为花费多年开发基于{{1}}的应用程序的人,我发现在QML中开发UI非常容易 - 非常值得学习。

    1. 不,我不知道你是如何得出这个结论的。 QtQuick是一个前端层,它的功能非常有限。换句话说,除了最简单的应用程序之外,您将需要一个C ++(或Python,Haskell,Java等)后端。

    2. Qt是一个(巨大的)框架,你不能从“开始”开始。学习一切,直到你到达终点。 - 这是没有意义的。使用教程来了解API设计以及如何处理常见问题,并阅读参考文档以了解它具有哪些功能。

      至于您需要学习的内容:core internalsMVCQtQuickqmake

答案 4 :(得分:2)

很难找到关于此的完整且统计上可证明的信息,但我很高兴根据我使用Qt的6年经验给出我的观点。

1)对于使用Qt来说,不是绝对必要的学习QML,有些目标使用QML更容易实现,而其他目标在Qt / c ++中更容易实现,并且有一些事情根本无法实现用QML完成。 例如,如果您想基于简单数据创建轻量级移动跨平台应用程序,并且用户体验远比业务逻辑重要,那么QML可能是最佳选择。在许多其他情况下,Qt / c ++可能是更好的选择。

2)有一段时间以来,c ++ / Qt一直是桌面应用程序唯一真正强大的跨平台框架,现在情况已经不再如此,桌面应用程序也逐渐失去人气,现在的Web应用程序和移动应用程序是大公众和决定如何实施应用程序的经理的首选。 在我看来,桌面应用程序已经被折旧而不是Qt / c ++,因为Digia(Qt所有者)推动QML比传统的c ++更多,希望管理者选择开发他们的下一个应用程序而不是编写webapp或者原生移动应用。

有一个领域,Qt仍然是事实上的标准,那就是嵌入式应用市场。 有数以百万计的设备,如洗衣机,自动取款机,老虎机,汽车电脑,GPS设备等,这些设备都是基于Linux的,并且由完全用Qt / c ++编写的软件驱动。

3)开始学习Qt最初的几天课程是一个好主意,但它并不便宜。 KDAB可能是一个很好的选择,他们定期在欧洲和美国开设课程。 如果您的预算不允许使用课程,那么我的建议是查看IDE中的示例并阅读(部分)您可以在线找到的大量教程和建议。

相关问题