Qt:34---MDI多文档界面
一、MDI简介MDI就是多文档界面(Multi-document Interface,MDI)应用程序MDI就是在主窗口里创建多个同类型的MDI子窗口,这些MDI子窗口在主窗口里显示,并共享主窗口上工具栏和菜单等操作功能,主窗口上的操作都针对当前活动的MDI子窗口进行二、QMdiArea组件设计MDI应用程序需要在主窗口工作区放置一个QMdiArea作为MDI子窗体的容器所以我们...
·
一、MDI简介
- MDI就是多文档界面(Multi-document Interface,MDI)应用程序
- MDI就是在主窗口里创建多个同类型的MDI子窗口,这些MDI子窗口在主窗口里显示,并共享主窗口上工具栏和菜单等操作功能,主窗口上的操作都针对当前活动的MDI子窗口进行
二、QMdiArea组件
- 设计MDI应用程序需要在主窗口工作区放置一个QMdiArea作为MDI子窗体的容器
- 所以我们需要事先创建窗体类对象,然后将窗口类通过addSubWindow函数添加到MDIArea组件中,然后再调用窗口类的show函数显示窗体
三、MDI的一些注意事项
- 当在主窗口中关闭一个MDI子窗口时,这个MDI窗口对象都会删除。也可以使用setAttribute(Qt::WA_DeleteOnClose);函数显示设置在关闭MDI时删除窗口对象
四、QMDIArea组件的相关函数
addSubWindow函数
- 此函数将一个窗口类添加到MDIArea中,然后调用窗口类的show函数显示在MDIArea中
QMdiSubWindow *QMdiArea::addSubWindow(QWidget *widget, Qt::WindowFlags windowFlags = Qt::WindowFlags())
activeSubWindow、widget函数
- 该函数返回当前选中的活动的子窗口,返回的是QMdiSubWindow指针对象
- 这样我们就可以通过activeSubWindow函数返回的QMdiSubWindow指针对象,间接通过widget函数得到该窗口的对象(但是需要强制类型转换)
QMdiSubWindow *QMdiArea::activeSubWindow() const
//头文件:#include <QMdiSubWindow> QWidget *QMdiSubWindow::widget() const
subWindowList函数
- 此函数返回MDIArea组件中的窗口类列表
- 因此我们可以通过该函数再调用count函数获取当前MDIArea中的窗体数量
QList<QMdiSubWindow *> QMdiArea::subWindowList(WindowOrder order = CreationOrder) const
loadFormFile函数
- 当某个窗体添加到MDIArea中之后,就可以通过此函数加载一个文件的内容
- 参数为QString对象,该对象是通过QFileDialog::getOpenFileName函数打开的
closeAllSubWindows函数
- 通过此函数关闭MDIArea组件中的所有窗口
void QMdiArea::closeAllSubWindows()
tabsClosable()、setTabsClosable函数
- tabsClosable:返回当前的MDIArea中的某个窗口是否可以关闭
- setTabsClosable:设置当前的MDIArea中的某个窗口是否可以关闭
bool tabsClosable() const void setTabsClosable(bool closable)
viewMode、setViewMode函数
- viewMode:返回当前MDIArea中某个窗口的显示模式
- setViewMode:设置当前MDIArea中某个窗口的显示模式
ViewMode viewMode() const void setViewMode(ViewMode mode)
ViewMode 类型如下: QMdiArea::TabbedView //Tab多页显示模式 QMdiArea::SubWindowView //子窗口模式
窗口默认显示为“子窗口模式”显示,Tab多页显示模式如下图所示:
cascadeSubWindows、tileSubWindows函数
- cascadeSubWindows:窗口级联模式展开显示
- tileSubWindows:窗口平铺模式展开显示
void QMdiArea::cascadeSubWindows() void QMdiArea::tileSubWindows()
textCut、setEditFont等函数
- 当我们将窗口添加到MDIArea中之后,就可以调用这些函数来对窗口的字体进行格式化设置、剪切、复制
五、QMDIArea组件的信号函数
subWindowActivated信号函数
- 当前活动窗口切换时触发此信号函数,利用此信号可以在活动窗口切换时进行一些处理
subWindowActivated(QMdiSubWindow *arg1)
六、演示案例
更多推荐
已为社区贡献6条内容
所有评论(0)