您现在的位置是:网站首页> C/C++

QT MDI

  • C/C++
  • 2022-03-26
  • 890人已阅读
摘要

 创建一个MDI窗口如

class QFormDoc:public QWidget

{

   Q_OBJECT

   private :

    QString mCurrFile;

    bool mFileOpened=false;

   public:

   explicit QFormDoc(QWidget *parent=0);

   ~QFormDoc();

  ....

  private :

Ui::QFormDoc *ui;

}


QFormDoc::QFormDoc(QWidget *parent):QWidget(parent),ui(new Ui::QFormDoc)

{

 ui->setupUi(this);

this->setWindowTitle("....");

this->setAttribute(Qt::WA_DeleteOnClose);//关闭自动删除


}


QFormDoc::~QFormDoc()

{

delete ui;

}


主窗口里加入


ui->setupUi(this);

this->setCentralWidget(ui->mdiArea);

this->setwindowState(Qt::WindowMaximized);





QFormDoc *formDoc=new QFormDoc(this);

ui->mdiArea->addSubWindow(formDoc);

formDoc->show();



获得所有打开的

ui->mdiArea->subWindowList().Count();

获得活动的

formDoc=(QFormDoc *)ui->mdiArea->activeSubWindow()->widget();


QMdiArea常营功能函数

ui->mdiArea->cascadSubWindows();// 窗口级联展开

ui->mdiArea->titleSubWindows();// 平铺展开

ui->mdiArea->closeAllSubWindows();// 关闭全部子窗口

Tab多页显示

ui->mdiArea->setViewMode(QMdiArea::TabbedView);//tab多页显示模式

ui->mdiArea->setTabsCloseable(true);//页面可关闭

ui->actCasecade->setEnabled(false);//菜单状态设置

ui->actTitle->setEnabled(false);//菜单状态设置

 子窗口模式

ui->mdiArea->setViewMode(QMdiArea::SubWindowView);//子窗口显示模式

ui->actCasecade->setEnabled(true);//菜单状态设置

ui->actTitle->setEnabled(true);//菜单状态设置


MDIArea信号

subWindowActivated(QMdiSubWindow *arg1)



Top