kde plasma -很好的QT或kde程序,附带源代码,可以作为一个不平凡的例子使用



QT开发工具包附带了一些关于如何通过琐碎应用程序编写功能的好例子,但是没有一个接近于展示如何在QT中构建一个复杂的程序,如果有的话,应该是全局的,等等?在设计类时是否存在最终需要大量重构的缺陷?

我确信有很多开源的KDE应用程序可以很好地服务,所以我想我的问题是,为了使用,我需要下载和设置的最小数量的源代码,比如说,海豚作为一个示例应用程序?如果答案是"所有的KDE",那么我猜这是不实际的(除非从源代码下载和构建所有的KDE足够容易,使这变得可行)。

有什么建议吗?就我个人而言,我希望建立一个类似浏览器的应用程序,但更简单。因此,作为一个示例,处理套接字和多个选项卡视图的东西会很好。

谢谢,Rob

关于Qt本身,我给出的主要建议是尽可能多地花精力学习使用Qt的模型视图委托功能。你可能会有很多工作要做,但一旦你做到了,你就可以用它做非常强大的事情。另一个相对棘手的话题,你会想要投资学习资源,是内存管理和Qt如何促进(和不促进)它。

对我来说最令人困惑的事情之一是,当你的模型非常复杂时,你可能根本不想让你的核心模型类成为Qt模型。相反,我现在把Qt模型看作主要向视图提供数据的东西。如果你的模型非常复杂,你可能想使用你实际的,更复杂的模型作为Qt模型类(QAbstractItemModel的衍生物)的数据源,它反过来附加到UI视图。

同样,Qt文档是你的朋友。Qt是一个广泛的框架,包含了很多有用的功能。我喜欢数据结构的易用性,例如:QHash, QList等。

项目脚手架功能对于初学者来说,对于Qt Creator中不同的项目类型可能确实有用。现在,Qt示例实际上是相当好的,并且包含了许多好的实践。你只需要挑选你需要的。

我已经开发我们的Qt桌面应用程序家族五年了。我们的目录结构是非常不正统的——主要是我们有lib/,我们将不同的相关功能分组在子目录下。我们的想法是,如果某个东西是lib的,那么它就是通用的和原子的,足以在我们软件家族中的几个实际桌面应用程序中使用。

你的问题似乎比Qt更通用,很难判断你是否在寻找更通用的计算机科学教育。当然,一般应该避免使用全局变量。当然,我们确实有一个constants.h和其他类似全局的不可变配置数据,因为在很多地方都需要它。但这增加了状态,因此如果不小心操作,可能会产生不可预测的后果。

您可以在这样的地方查找目录结构,尽管我自己并不遵循这个建议。http://hiltmon.com/blog/2013/07/03/a-simple-c-plus-plus-project-structure/

除非您计划直接为KDE做出贡献,否则我建议不要学习KDE的做事方式。不一定是因为他们做得不好,而是因为它是一个自己的世界- KDE开发的最佳实践可能不是独立Qt应用程序的最佳实践。(免责声明:我,作为一个UI开发人员,实际上不喜欢KDE,所以我不是很了解这个项目-除了它确实看起来有点像局外人。)

所以我想知道像Qupzilla这样的东西是否适合你?(通过qt-apps找到)

HTH .

最新更新