C++ Qt5设计器和封装

C++ Qt5设计器和封装,c++,qt5,C++,Qt5,我在Qt设计中创建了一个主窗口,它具有以下结构 Ui_主窗口 垂直布局 QTabWidget 小部件(*A) QChart QChart uic生成一个头文件“ui_mainwindow.h”。此头文件包含所有子(subsub,subsubsub,…)小部件上的引用。在我看来,这不是很好的封装 我找到了一种在Qt设计器中为不同的小部件设置自定义类的方法。 因为我必须手动编写这些类,所以我无法访问/引用子窗口小部件。我只能控制小部件本身。仍然在主窗口UI中引用所有小部件 是否有

我在Qt设计中创建了一个主窗口,它具有以下结构

  • Ui_主窗口
    • 垂直布局
      • QTabWidget
        • 小部件(*A)
          • QChart
          • QChart
uic生成一个头文件“ui_mainwindow.h”。此头文件包含所有子(subsub,subsubsub,…)小部件上的引用。在我看来,这不是很好的封装

我找到了一种在Qt设计器中为不同的小部件设置自定义类的方法。 因为我必须手动编写这些类,所以我无法访问/引用子窗口小部件。我只能控制小部件本身。仍然在主窗口UI中引用所有小部件

是否有方法为每个(或某些选定的)小部件生成单独的类?我想截取*A并访问儿童QCharts


谢谢,

即使您已经可以在当前表单中“截取A”。您当然可以在不同的部分中分离A,然后在主窗口中添加QWidget,右键单击它并将其升级为A

您有具体的示例吗?这里很难给出不涉及代码的示例。您可以查看指导性解释您可以更改处理UI类的方式。该设置是在C++的-> QT类生成中,在Creator的设置中。你有三个选择,这里有记录:好的,我想我有一个解决方案。我只需要使用自定义类实现自己的层次结构,并将指向生成的UI类的指针传递给该层次结构。尽管如此,我认为在生成的头文件中扁平化UI XML中的深层层次结构并不是最佳做法。