但是当子窗口在MDI项目中最大化时,它看起来像这样
我需要修正这个输出
我想检查活动子项是否最大化,如果是,我想获得最小化/恢复/关闭矩形以获得它们的总宽度。
如何获得活动的子窗口,如何获得它的矩形按钮?
答案 0 :(得分:1)
//在yourMainWindow.cpp
中...
auto child = mdiArea->addSubWindow(yourWidget);
connect(child, &QMdiSubWindow::windowStateChanged, this, &yourMainWindow::yourSlot);
...
void yourMainWindow::yourSlot(Qt::WindowStates oldState, Qt::WindowStates newState)
{
if (newState.testFlag(Qt::WindowMaximized)) {
auto child = qobject_cast<QMdiSubWindow *>(sender());
if (!child)
return;
QStyleOptionComplex opt;
opt.initFrom(child);
auto size = child->style()->sizeFromContents(QStyle::CT_MdiControls, &opt, QSize(100, 20));
qDebug() << size;
}
}