C++/QT 中更大项目的结构

Structure of bigger project in C++/QT

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

我可以在 QtCreator 中将整个东西设计到一个 ui 文件中,但那样我会得到一个巨大的 class,这当然不是很好。

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

第二个解决方案似乎不错,但我害怕处理 window 调整大小。

使用 Qt 制作更复杂的应用程序时,最佳做法是什么?能给我推荐一篇可以借鉴的文章或开源项目吗?

感谢所有建议!

更大的UI/GUI项目不是简单的UI文件,更常见的是'ui build from code'.

想象一下这样的事情: -\ 我的项目 --\ 核心系统\ *.cpp *.h --\ 音乐控制器 \ *.cpp *.h --\ UI ---\CoreUi\*.cpp*.h ---\ 音乐UI ----\ 播放列表UI \ *.cpp *.h ----\EqUI\*.cpp*.h

还有更多,更多。

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

使用 Qt signal/slot 系统您可以分离越来越多的东西,包括一些设计模式,您可以将您的项目扩展到附加功能,例如插件?

这必须从更大的范围来看,弄清楚 UI 部分将是什么,'core'(后端引擎)功能必须具有什么,以及许多其他事情。

例如 'skins' - 它们必须放置在某个地方,皮肤必须有一些要设置的变量 + 一些解析器? (更简单的方法是使用 'coded' css 名称)。

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

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