如何最小化/恢复/关闭矩形?

时间:2015-12-23 10:49:24

标签: qt mdi

我想在这样的菜单栏的末尾画一些文字 enter image description here

但是当子窗口在MDI项目中最大化时,它看起来像这样 enter image description here
我需要修正这个输出 我想检查活动子项是否最大化,如果是,我想获得最小化/恢复/关闭矩形以获得它们的总宽度。
如何获得活动的子窗口,如何获得它的矩形按钮?

1 个答案:

答案 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;
    }
}