我创建了一个customer_<name3>.docx
,可以创建一个或多个QMainWindow
,以下方法负责创建子窗口:
QMdiSubWindow
正如您在代码中看到的那样,我创建了一个关闭其中一个的信号。
void PSubWindow::newFile(){
static ushort newFileCounter = 1;
this->mdiareaContainer = this->mainWindow->findChild<QMdiArea*>("mdiArea");
QMdiSubWindow *window = new QMdiSubWindow();
window->setAttribute(Qt::WA_DeleteOnClose, true);
window->setWidget(new QPlainTextEdit);
this->subWindow = mdiareaContainer->addSubWindow(window);
QString FileTitle = "Untitled " + QString::number(newFileCounter++);
this->subWindow->setWindowTitle(FileTitle);
this->subWindow->show();
this->mdiareaContainer->setViewMode(QMdiArea::TabbedView);
this->mdiareaContainer->setTabsClosable(true);
this->mdiareaContainer->setTabsMovable(true);
this->tabs = mdiareaContainer->findChild<QTabBar*>();
this->tabs->setExpanding(false);
QObject::connect(this->tabs, SIGNAL(tabCloseRequested(int)), this, SLOT(on_subWindow_tabCloseRequested(int)), Qt::UniqueConnection);
}
在关闭最后一个窗口时,总是在运行时出现错误消息,消息显示:
我该如何解决这个问题?
答案 0 :(得分:1)
检查index
是否小于sub.size()
;列表将为空,因为最后一个窗口已关闭,但索引可能仍为0。
答案 1 :(得分:1)
删除选项卡后,窗口将被删除,因此列表中不再存在该位置。