C++ 在QT C++;,QMB窗口打开多个窗口
伙计们,我很抱歉,但是我一直在看一些关于QT的文档,但是我仍然无法让它工作,我想要的是,我有一个Mdi区域,它有一个按钮来添加子窗口,这是一个电话簿,当我点击按钮添加子窗口时,它确实会这样做,但如果我点击它5次,它将打开5个相同的窗口,我想让它只打开一个,无论你点击多少次 这是一张图片,当我点击红色的按钮时,它会打开中间的那个窗口。我试着将它设置为活动窗口,并使用了一些其他的东西,但没有任何效果,非常感谢您的帮助C++ 在QT C++;,QMB窗口打开多个窗口,c++,qt,C++,Qt,伙计们,我很抱歉,但是我一直在看一些关于QT的文档,但是我仍然无法让它工作,我想要的是,我有一个Mdi区域,它有一个按钮来添加子窗口,这是一个电话簿,当我点击按钮添加子窗口时,它确实会这样做,但如果我点击它5次,它将打开5个相同的窗口,我想让它只打开一个,无论你点击多少次 这是一张图片,当我点击红色的按钮时,它会打开中间的那个窗口。我试着将它设置为活动窗口,并使用了一些其他的东西,但没有任何效果,非常感谢您的帮助 这很简单。如果已经创建了另一个窗口,则不要创建该窗口 在头文件中: QMdiSub
这很简单。如果已经创建了另一个窗口,则不要创建该窗口 在头文件中:
QMdiSubWindow* subwindow;
在构造函数中:
subwindow = 0;
在按钮的onclick插槽中:
if (!subwindow) {
subwindow = ui->mdi_area->addSubWindow(widget);
}
subwindow->show();
subwindow->setFocus();
默认情况下,子窗口关闭时不会被删除,因此您可以再次使用同一对象。您可以在打开之前检查子窗口列表:
bool is_open = false;
foreach(QMdiSubWindow *subw, ui->mdi_area->subWindowList())
if (qobject_cast<YouWindowClass>(subw) != nullptr) is_open = true;
bool is_open=false;
foreach(qmdusubwindow*subw,ui->mdi\u区域->子窗口列表())
如果(qobject_cast(subw)!=nullptr)为_open=true;