这是我第一次使用Qt,也是我第一次在一个相对严肃的项目中使用它。我明白,由于问题空间的性质,编写Qt代码与编写普通C++有点不同。我相信我已经很好地掌握了信号&插槽和通用库,以及QtCreator。我已经看了很多教程、文档和GitHub项目,但没有明确的答案,至少没有深入研究其中一个项目(这些项目相当大,因此很难质疑代码设计用例),假设它们设计得很好。
我的问题是如何将小部件(大概还有UI表单)模块化到它们自己的文件中;我知道一个ui_mainwindow。h文件从主窗口生成。ui,并包含您可以从MainWindow访问的(全局)小部件对象/变量。cpp,但是我有点不知所措,如何将这些小部件对象放入它们自己的文件和/或类中,从而封装它们。例如:
MainWindow.cpp
MainWindow.h
Button.cpp
Button.hpp
Search.cpp
Search.hpp
ListView.cpp
ListView.hpp
有一个选项是以编程方式创建所有内容,我已经看到项目这样做;相比之下,RPCS 3似乎只为单独的页面/菜单使用新的ui表单。然而,我想保持表示和逻辑分离,但不知道如何去没有一个单一的臃肿的主窗口。cpp文件。
1条答案
按热度按时间e4eetjau1#
Qt Widget Designer不适合设计太大的东西。事情只是变得笨拙和令人沮丧,你运行的风险增加了运行到一些错误。设计师的部分是旧的(从90年代可能?)比Qt Creator(2007-〉),基本上是固定的,没有完全集成(例如:在Designer中重命名东西)。
简而言之,就是将应用程序的整个复杂UI设计为单个UI的想法。ui文件与 * 一切 * 在它可能是一个坏主意,并会导致眼泪和头发拉。
因此,您应该创建自包含的可重用小部件。这是一组固定的文件:.cpp、.h和可选地。ui,和 * 可能 * 资源文件(如果你想要非可配置的非共享图形等),和可能的语言文件,如果你真的想让它成为独立的小部件(那么它可能是一个子项目)。* 无论它有。ui文件或纯C++应该是一个隐藏的实现细节,在使用此小部件时不重要。* 如果小部件中有自包含的部件,则它们将成为独立的可重用小部件。
如果你设计了顶层。ui与设计器,然后您可以使用“升级到”使用您的自定义小部件在那里。顶层。UI应该是关于应用程序的顶层布局,而不是关于UI不同部分的确切内容。
每个UI都是不同的,如何将其划分为更小的部分是非常主观的,所以很难给予比经验法则更多的东西。但要记住的主要事情是: