gpt4 book ai didi

c++ - 关闭QMdiSubWindow时出现错误信息

转载 作者:行者123 更新时间:2023-11-30 03:32:10 25 4
gpt4 key购买 nike

我创建了一个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);
}

正如您在代码中看到的那样,我创建了一个关闭其中一个的信号。

void PSubWindow::on_subWindow_tabCloseRequested(int index) {
QList<QMdiSubWindow*> sub = this->mdiareaContainer->subWindowList();
qDebug()<< sub[index];
}

总是在运行时关闭最后一个窗口时出现错误消息,消息说:

我该如何解决这个问题?

最佳答案

检查index是否小于sub.size();该列表将为空,因为最后一个窗口已关闭,但索引可能仍为 0。

关于c++ - 关闭QMdiSubWindow时出现错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43689947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com