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。
我打算开始一个中等规模的 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。