如何使Qt MainWindow类变得简单?

如何使Qt MainWindow类变得简单?,qt,mainwindow,Qt,Mainwindow,GUI中的MainWindow类(如Qt应用程序)通常非常大,包括所有菜单、工具栏、中心窗口小部件和其他窗口小部件,以及与各种事件对应的许多成员函数和许多其他成员便利函数 有什么好的策略来简化课程吗 非常感谢 Jayden与分解任何大型组件的方法相同: 将功能和职责抽象(分解)为 子组件;重复此操作,直到达到合适的粒度级别 实现了 如果没有任何具体的细节,就很难做到更精确。谢谢你的好意。但在主窗口类上执行此操作似乎很困难,因为其成员函数通常使用多个组件。例如,将主窗口分解为组件0到5。将相关函数

GUI中的MainWindow类(如Qt应用程序)通常非常大,包括所有菜单、工具栏、中心窗口小部件和其他窗口小部件,以及与各种事件对应的许多成员函数和许多其他成员便利函数

有什么好的策略来简化课程吗

非常感谢


Jayden

与分解任何大型组件的方法相同:

将功能和职责抽象(分解)为 子组件;重复此操作,直到达到合适的粒度级别 实现了


如果没有任何具体的细节,就很难做到更精确。

谢谢你的好意。但在主窗口类上执行此操作似乎很困难,因为其成员函数通常使用多个组件。例如,将主窗口分解为组件0到5。将相关函数放入组件0中。但此函数将使用其他一些组件。如何让组件0访问其他组件?一种方法是在组件0中存储指向其他组件的指针。另一种方法是在组件0中存储指向主窗口的指针,并使它们在主窗口类中可访问。哪一个更好?或者其他更好的方法?通过将主窗口的引用传递到每个子组件中,然后子组件又将其传递到其子组件中,依此类推-这样每个组件都可以访问任何其他组件。或者,如果您可以保证只有一个主窗口实例,那么您可以提供从单例访问它的权限。这是一个好方法。但通常主窗口中的子组件是私有的。让它们安全吗?你必须选择哪些组件可以暴露,哪些不能暴露。此外,通常不需要暴露对象本身,而是暴露它所代表的行为。作为一个非常简单的示例:您不会公开窗口拥有的
QPushButton
,但会公开它按下时触发的插槽。