您现在的位置是:网站首页> C/C++
QT MDI
- C/C++
- 2022-03-26
- 888人已阅读
创建一个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)