如何得到 minimize/restore/close 矩形?

How to get minimize/restore/close rectangle?

我想像这样在菜单栏的末尾画一些文字

但是当 child window 在 MDI 项目中最大化时它看起来像这样

我需要修复此输出。
我想检查活动 child 是否已最大化,如果是,我想获取 minimize/restore/close 矩形以获得它们的总宽度。
我怎样才能激活 child window 以及我怎样才能得到它的按钮矩形?

// 在 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;
    }
}