`
qimo601
  • 浏览: 3449229 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

QMdiArea

    博客分类:
  • Qt
阅读更多

 

1、常用功能函数

Qt全屏显示函数         window.showFullScreen()

Qt最大化显示函数         window.showMaximized()

Qt最小化显示函数         window.showMinimized()

Qt固定尺寸显示函数         window.resize(x,y)

 

 

 

void MainWindow::on_action_21_triggered()
{
    HelpWnd *hw=new HelpWnd(this);
    if(!ui->mdiArea->subWindowList().isEmpty())
    {
        ui->mdiArea->closeAllSubWindows();
    }
    QMdiSubWindow *subWindow = ui->mdiArea->addSubWindow(hw,0);
    subWindow->setWindowTitle(tr("帮助文档"));
    subWindow->showMaximized();
}
2、如何利用QT creator给QMdiArea添加背景图片
一.属性设置里将QMdiArea组里的background 下的style设置成no brush    就是不用任何画刷填充颜色
二.利用stylesheet设置background-image或者border-image

前者是平铺方式设置背景,后者是拉伸方式设置背景

 

 

3、遍历QMdiSubWindowlist里的窗口,当新建窗口时可以保证实例的唯一性,用子窗口的windowtitle作为判断标志。 

 

void MainWindow::on_action_21_triggered()
{
    bool flags=false;
    if(ui->mdiArea->subWindowList().isEmpty())
    {
        HelpWnd *hw = new HelpWnd(this);
        QMdiSubWindow *subWindow = ui->mdiArea->addSubWindow(hw,0);
        subWindow->setWindowTitle(tr("帮助文档"));
        subWindow->showMaximized();
    }
    else
    {
        for(int i=0;i<ui->mdiArea->subWindowList().size();i++)
        {
            if(tr("帮助文档")==ui->mdiArea->subWindowList().at(i)->windowTitle())
            {
                ui->mdiArea->subWindowList().at(i)->showMaximized();
                flags=true;
            }
        }
        if(flags==false)
        {
            HelpWnd *hw = new HelpWnd(this);
            QMdiSubWindow *subWindow = ui->mdiArea->addSubWindow(hw,0);
            subWindow->setWindowTitle(tr("帮助文档"));
            subWindow->showMaximized();
        }
    }
}

 

4、在一个QMainWindow中建立一个QMdiArea的例子

 

VS中建立一个QMainWindow项目,通过ui会自动生成一段代码ui_xxx.h,我们以后就可以使用多文档界面了。

 

/********************************************************************************
** Form generated from reading UI file 'MainWindow.ui'
**
** Created: Thu Feb 16 19:10:50 2012
**      by: Qt User Interface Compiler version 4.7.4
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QHeaderView>
#include <QtGui/QMainWindow>
#include <QtGui/QMdiArea>
#include <QtGui/QMenuBar>
#include <QtGui/QStatusBar>
#include <QtGui/QToolBar>
#include <QtGui/QWidget>

QT_BEGIN_NAMESPACE

class Ui_MainWindowClass
{
public:
    QWidget *centralWidget;
    QMdiArea *mdiArea;
    QMenuBar *menuBar;
    QToolBar *mainToolBar;
    QStatusBar *statusBar;

    void setupUi(QMainWindow *MainWindowClass)
    {
        if (MainWindowClass->objectName().isEmpty())
            MainWindowClass->setObjectName(QString::fromUtf8("MainWindowClass"));
        MainWindowClass->resize(761, 593);
        MainWindowClass->setMinimumSize(QSize(0, 0));
        centralWidget = new QWidget(MainWindowClass);
        centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
        mdiArea = new QMdiArea(centralWidget);
        mdiArea->setObjectName(QString::fromUtf8("mdiArea"));
        mdiArea->setGeometry(QRect(30, 40, 560, 350));
        MainWindowClass->setCentralWidget(centralWidget);
        menuBar = new QMenuBar(MainWindowClass);
        menuBar->setObjectName(QString::fromUtf8("menuBar"));
        menuBar->setGeometry(QRect(0, 0, 761, 23));
        MainWindowClass->setMenuBar(menuBar);
        mainToolBar = new QToolBar(MainWindowClass);
        mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
        MainWindowClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
        statusBar = new QStatusBar(MainWindowClass);
        statusBar->setObjectName(QString::fromUtf8("statusBar"));
        MainWindowClass->setStatusBar(statusBar);

        retranslateUi(MainWindowClass);

        QMetaObject::connectSlotsByName(MainWindowClass);
    } // setupUi

    void retranslateUi(QMainWindow *MainWindowClass)
    {
        MainWindowClass->setWindowTitle(QApplication::translate("MainWindowClass", "PET/CT\346\216\247\345\210\266\345\217\260", 0, QApplication::UnicodeUTF8));
    } // retranslateUi

};

namespace Ui {
    class MainWindowClass: public Ui_MainWindowClass {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_MAINWINDOW_H
分享到:
评论

相关推荐

    Qt例程源代码QMdiArea.7z

    Qt例程源代码QMdiArea.7z

    多文档文本编辑器--利用QMdiArea类实现了多文档的编辑功能

    软件简介:该多文档文本编辑器利用QMdiArea类实现了多文档的编辑功能,能够在标签模式和窗口模式下自由切换显示子窗口,在功能上不仅实现了文本编辑器最基本的功能,而且还实现了打印文档、输出PDF文档、记录最近...

    QMdiArea.7z

    QMdiArea是Qt库中的一个关键组件,用于创建支持多文档界面(MDI,Multiple Document Interface)的应用程序。在MDI应用中,用户可以在同一窗口内同时打开和操作多个子窗口,这在处理多个文档或工作空间时非常有用。...

    QT MDI应用程序设计示例

    传统的应用程序设计中有多文档界面(Multi-documentInterface,MDI)应用程序,...实例samp6_4主窗口的工作区使用一个QMdiArea组件,实例的子窗口类是QFormDoc,是一个使用QPIainTextEdit进行简单文本显示和编辑的窗体。

    Qt多对话框框架设计

    在本文中,我们将深入探讨如何在Qt环境中设计一个多对话框框架,主要关注QMdiArea和TabWidget两种技术。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的功能来创建美观且功能强大的GUI应用。 ...

    MdiArea.zip

    3. **子窗口的管理**:你可以使用`QMdiArea`提供的方法来管理子窗口,例如,`QMdiArea::activeSubWindow()`返回当前活动的子窗口,`QMdiArea::subWindowList()`返回所有子窗口的列表。 4. **布局与布局管理**:`Mdi...

    mdieditor.rar

    QMdiArea *mdiArea = new QMdiArea; mainWindow-&gt;setCentralWidget(mdiArea); ``` 接下来,我们需要创建自定义的QMdiSubWindow来展示文档。每个QMdiSubWindow通常包含一个特定的视图类,如QTextEdit、QGraphicsView...

    Qt5多文档框架

    Qt5的多文档框架为开发者提供了构建多文档应用程序的强大工具,通过QMdiArea、QMdiSubWindow和QMainWindow等类的组合使用,可以轻松实现复杂的MDI功能。开发者可以根据需求定制子窗口的行为和外观,创建出符合用户...

    Qt5.实现自动停靠窗口DockWidget动态库

    支持windows和linux平台,支持qt5.12.10以上版本,支持qt6全系列版本,资源只提供了window下Qt5.12.10动态库,MinGW7.3.0编译。 不得用于商业系统,详情 https://blog.csdn.net/dy2017/article/details/129718740

    pyqt5--mdiArea-QMainWindow-Dialog-多窗口显示

    mdiArea里显示多窗体,网上查到的大部分是doc版的,我这还有mainwin 和dialog

    MdiSubWindows.7z

    创建QMdiSubWindow时,我们需要设置其parent为QMdiArea,然后添加QMdiSubWindow到QMdiArea中。 在"MdiSubWindows"实例中,我们可以预见到以下关键步骤: 1. **初始化**: 创建一个QMdiArea,并将其设置为主窗口的...

    Qt多线程测试代码

    在编程领域,尤其是在GUI(图形用户界面)应用中,多线程技术是非常关键的一个部分。Qt框架提供了一种高效且方便的方式来实现多线程,尤其是通过其内置的`QThread`类。`QThread`是Qt对C++标准库中的线程API的一种...

    Qt样式表实例

    Qt样式表实例 在 Qt 中,样式表实例是一个功能强大且灵活的工具,允许开发者自定义 Qt 小部件的外观和行为。本文将详细介绍 Qt 样式表实例,并探讨如何使用样式表来自定义 Qt 小部件。 一、可 stylable 小部件 ...

    mdi.tar.gz_linux c

    QMainWindow提供了一个基本的框架,可以包含菜单栏、工具栏和状态栏,而QMdiArea则允许在其中添加子窗口,这些子窗口可以是QMdiSubWindow类型的其他窗口。 在学习和实践Qt Linux C++ MDI应用时,你可能会遇到以下几...

    Qt应用程序框架涉及

    在实际开发中,利用Qt的MDI结构,开发者可以创建一个主窗口,其中包含QMdiArea,然后在QMdiArea内打开和管理多个MDI子窗口。同时结合TabWidget,可以将不同的功能或者数据集划分为各个标签页,提高用户界面的易用性...

    多文档文本编辑器(可以直接运行)

    QMainWindow是主窗口类,用于容纳菜单栏、工具栏和状态栏,而QMdiArea则用于管理MDI子窗口,使得用户可以在同一窗口内切换和排列多个文档。 这个项目的描述提到,开发者在其博客中展示了编辑器的功能和界面,这可能...

    RibbonMDIDemo_QtMDIRibbonDemo_Qt多文档框架_qtRibbon_源码.zip

    QMainWindow提供了主窗口的基本结构,包括菜单栏、工具栏、状态栏等,而QMdiArea则用于管理子窗口,使得用户可以自由排列、最大化、最小化和关闭子窗口。通过继承QMainWindow并自定义其行为,开发者可以轻松地创建...

    qt画图程序 有两个例子,一个多文档,一个单文档

    QMdiArea是MDI区域,用于容纳多个QMdiSubWindow,每个QMdiSubWindow代表一个独立的文档窗口。通过QMdiArea,用户可以自由排列和切换不同的文档。 5. **单文档示例**:在SDI示例中,可能会使用QMainWindow作为主窗口...

    qt4toqt5的变化

    `QWorkspace` 类在Qt5中已经被移除,取而代之的是 `QMdiArea`。迁移时,需要更新代码以使用 `QMdiArea` 类及其相关的API。 5. **QDrag的修改**: 在Qt5中,使用 `QDrag` 进行拖放操作可能需要调整。比如,创建 `...

    QT开发多文档框架

    2. **QMdiArea**:QMdiArea是显示MDI子窗口的容器。它可以管理和布局多个子窗口,允许用户在它们之间切换、排列和缩放。 3. **QMdiSubWindow**:这是子窗口的基类,用于显示单个文档。QMdiSubWindow可以被最大化、...

Global site tag (gtag.js) - Google Analytics