C ++ / QT中更大项目的结构[关闭]

Posted

技术标签:

【中文标题】C ++ / QT中更大项目的结构[关闭]【英文标题】:Structure of bigger project in C++/QT [closed] 【发布时间】:2016-03-14 19:37:32 【问题描述】:

我打算在 C++/Qt 中开始一个中等规模的爱好项目。我想尝试制作具有一些高级功能的音乐播放器,例如音乐库、ID3 标签编辑器和接收流的基本支持(想想 WinAmp 和 VLC 的交叉)。

我可以在 QtCreator 中将整个东西设计到一个 ui 文件中,但是我会得到一个巨大的类,这肯定不好。

或者我可以将 GUI 的每个元素设计为一个小部件,每个小部件都在其 ui 文件中。然后每个 ui 文件将有一个工人类,我将使用布局创建小部件的层次结构。

第二种解决方案似乎不错,但我害怕处理窗口调整大小之类的事情。

在使用 Qt 制作更复杂的应用程序时,最佳实践是什么?你能推荐我可以学习的文章或开源项目吗?

感谢所有建议!

【问题讨论】:

【参考方案1】:

更大的 UI/GUI 项目不是简单的 UI 文件,但更常见的是“从代码构建 ui”。

想象一下这样的事情: -\ 我的项目 --\ CoreSystem \ *.cpp *.h --\ MusicControler \ *.cpp *.h --\用户界面 ---\ CoreUi \ *.cpp *.h ---\音乐用户界面 ----\ PlayListUI \ *.cpp *.h ----\EqUI\*.cpp *.h

还有更多,更多。

想法只是将程序的一些“部分”分成更小的块,这样您就可以更好地控制它们的外观和工作方式。

使用 Qt 信号/插槽系统,您可以越来越多地分离,包括一些设计模式,您可以将项目扩展为附加功能,例如插件?

这必须从更大的范围来看,弄清楚 UI 部分将是什么,“核心”(后端引擎)功能必须具有什么,以及许多其他的东西。

例如'skins' - 它们必须放在某个地方,skins 必须有一些变量来设置+一些解析器? (更简单的是使用“编码”的 CSS 名称)。

确实很难满足您的需求,但应用程序中的大部分 UI 不是在 QtCreator 中设计的 UI 文件,而是由代码手动制作的。

如果你真的喜欢在编辑器中创建 UI,那么使用 QStackedWidget。

【讨论】:

以上是关于C ++ / QT中更大项目的结构[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

程序员做好大项目的3个方法!

程序员做好大项目的3个方法!

关于大项目管理中的思考

java开发中小项目用springboot,大项目用springcloud,是这样的吗?

Flask 项目结构说明

Runtime