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

时间:2016-03-14 19:37:33

标签: c++ qt c++11 structure qwidget

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

我可以将QtCreator中的所有内容设计为一个ui文件,但后来我会得到一个庞大的类,这当然不是很好。

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

第二个解决方案似乎很好,但我担心处理窗口调整大小等问题。

使用Qt时制作更复杂的应用程序有哪些最佳做法?你能推荐一篇我可以学习的文章或开源项目吗?

感谢所有建议!

1 个答案:

答案 0 :(得分:0)

较大的UI / GUI项目不是简单的UI文件,但更常见的是“ui build from code”。

想象一下这样的事情: -\ 我的项目 - \ CoreSystem \ * .cpp * .h - \ MusicControler \ * .cpp * .h - \ UI --- \ CoreUi \ * .cpp * .h --- \ MusicUI ---- \ PlayListUI \ * .cpp * .h ---- \ EqUI \ * .cpp * .h

还有更多,等等。

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

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

这必须从更大的范围进行查看,以确定哪些UI部分将是什么,'核心'(后端引擎)功能必须具备什么,以及许多其他事情。

例如'皮肤' - 它们必须放在某处,皮肤上有一些变量来设置+一些解析器? (更容易使用'编码'的CSS名称。)

确切需要什么,但是应用程序中的大多数UI都不是在QtCreator中设计的UI文件,而是通过代码手动制作的。

如果您真的想在编辑器中创建UI,请使用QStackedWidget。