我打算开始一个中等规模的 C++/Qt 爱好项目。我想尝试制作具有一些高级功能的音乐播放器,例如音乐库、ID3 标签编辑器和接收流的基本支持(想想 WinAmp 和 VLC 的交叉)。
我可以在 QtCreator 中将整个东西设计到一个 ui 文件中,但那样我会得到一个巨大的类,这当然不是很好。
或者我可以将 GUI 的每个元素设计为一个小部件,每个元素都在其 ui 文件中。然后每个 ui 文件都有一个工作类,我将使用布局创建小部件的层次结构。
第二个解决方案似乎不错,但我害怕处理窗口调整大小之类的事情。
使用 Qt 制作更复杂的应用程序时,最佳实践是什么?您能给我推荐一篇文章或一个开源项目吗?
感谢所有建议!
更大的 UI/GUI 项目不是简单的 UI 文件,但更常见的是“从代码构建 ui”。
想象一下这样的事情:
.
└── MyProject
├── CoreSystem \ *.cpp *.h
├── MusicControler \ *.cpp *.h
└── UI
├── CoreUi \ *.cpp *.h
└── MusicUI
├── PlayListUI \ *.cpp *.h
└── EqUI \ *.cpp *.h
还有更多,还有更多。
想法只是将程序的一些“部分”分成更小的 block ,这样您就可以更好地控制它们的外观和工作方式。
使用 Qt 信号/槽系统,您可以分离越来越多的东西,包括一些设计模式,您可以将您的项目扩展到附加功能,如插件?
这必须从更大的范围来看,弄清楚 UI 部分将是什么,“核心”(后端引擎)功能必须具有什么,以及许多其他事情。
例如“皮肤”——它们必须放置在某个地方,皮肤必须要设置一些变量 + 一些解析器? (更简单的方法是使用“编码的”css 名称)。
确实很难满足您的需求,但应用程序的大部分 UI 并不是在 QtCreator 中设计的 UI 文件,而是通过代码手动制作的。
如果您真的喜欢在编辑器中创建 UI,请使用 QStackedWidget。