QMdiSubWindow 有自己的布局(Layout),在其中包含窗口 标题栏以及内部窗口的中心窗口区域。 QMdiArea 是所有子窗口的容器和管理器,QMdiArea 中的子窗口都是QMdiSubWindow 类的实例。我们通过addSubWindow()方法把它们加入到MDI 应用程序中。使用时,通常先 建立一个 QWidget 或其子类的实例,然后把它作为参数调用 addSubWindow() 函数, addSubWindow() 函数将把它作为子窗口的内部窗口,并填充中心窗口区域。由于 QMdiSubWindow 是QWidget 的子类,所以你可以像使用以前我们介绍过的常见顶层窗口那 样使用它,如可以调用基类 QWidget show(),hide(), showMaximized(), 以及 setWindowTitle()等方法对窗口实例进行设置。 addSubWindow(widget),其中widget参数将作为内部窗口部件;另一种是先创建一个继承自 QWidget 的窗口实例,然后调用setWidget(QWidget*widget)方法,把widget 作为子窗口的内 部窗口部件即可,这个内部窗口部件将被显示在子窗口的中心区域。注意,QMdiArea 会对 其内部的子窗口进行管理,你不必使用代码显式的管理它们。 新建一个子窗口类,它可派生自QWidget 或其子类,比如QTextEdit。这个类的实例将 作为子窗口的内部窗口部件。这个子窗口类的创建与我们前面讲到的子类化对话框和子类化 QWidget 的方法相同,只是它没有菜单栏、工具栏和状态栏。另外记得在主窗口的头文件中 加入该子窗口类的声明。 注意:QMdiArea 默认的滚动条属性是Qt:: ScrollBarAlwaysOff。 2、成员类型文档 enum QMdiArea::AreaOption flags QMdiArea::AreaOptions 这个枚举描述选项定制QMdiArea 的行为。 QMdiArea::DontMaximizeSubWindowOnActivation 0x1 当活动的子窗口最大化时,默认的行 为是被激活的下一个子窗口也被最 大化。如果你不希望出现此行为,设 置这个选项。 enum QMdiArea::ViewMode 这个枚举变量描述了区域的视图模