具有源的良好QT或KDE程序可用作非平凡的示例

时间:2015-07-11 15:08:28

标签: qt kde

QT开发工具包附带了一些很好的例子,说明了如何通过简单的应用程序对功能进行编码,但没有任何内容可以显示如何在QT中构建​​复杂的程序。什么,如果有的话,应该是全球性的等等?在设计你的课程时会遇到很多需要进行大量重构的陷阱?

我确信有很多开源KDE应用可以提供很好的服务,所以我想我的问题是,为了使用,我需要下载和设置最少量的源代码,比方说,Dolphin作为示例应用程序?如果答案是'全部KDE',那么我认为这是不切实际的(除非从源代码下载并构建所有KDE很容易实现)。

有什么建议吗?就个人而言,我正在寻找一个类似浏览器的应用程序,但更简单。因此,对于一个例子来说,处理套接字和多个选项卡式视口的东西会很好。

谢谢, 罗布

1 个答案:

答案 0 :(得分:1)

关于Qt本身的主要建议是我会尽量花费尽可能多的努力来学习使用Qt的模型视图委托功能。包裹你的头脑可能需要做很多工作,但是一旦你到达那里,你可以用它来做很有力的事情。您希望投入学习资源的另一个相对棘手的主题是内存管理以及Qt如何促进(并且不会促进)它。

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

此外,Qt文档是你的朋友。 Qt是一个广泛的框架,包含许多有用的功能。我喜欢它们易于使用的数据结构,例如:QHash,QList等。

初学者的项目脚手架功能,对于Qt Creator中的不同项目类型可能确实很有用。目前,Qt示例实际上非常好,并且包含许多良好实践。你只需要挑选你需要的东西。

我已经开发了Qt桌面app family已有五年了。我们的目录结构非常不正统 - 主要的是我们有lib /,我们在子目录中分组了不同的相关功能。我们的想法是,如果某些东西在lib中,它是通用的和原子的,足以用于我们软件系列中的几个实际桌面应用程序。

你的问题似乎比Qt更普遍。很难说你是否正在寻找更普通的计算机科学教育。当然,应该避免使用全局。 OTOH,我们有一个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。