Разобраться с состоянием окна в MdiArea - PullRequest
0 голосов
/ 26 сентября 2019

Я использую в своем приложении центральный виджет MDI.В настоящее время я всегда открываю дочерний элемент как развернутый

child->showMaximized();

Это вызывает проблемы, если я использую каскадное или мозаичное рабочее пространство.Теперь я попытался выяснить, развернуты ли подокна или нет.Если нет, я хочу открыть их в

child->showNormal();

Но фрагмент:

    foreach(QWidget* widget, mdiArea->subWindowList()) {
        if(widget->windowState()==Qt::WindowMaximized){
            qDebug("maximized");
        }else{
            qDebug("not maximized");
        }
    }

Похоже, что это подокно будет иметь только WindowActive и WindowNoState.Любая идея, как проверить, развернуто ли подокно (дочернее) или нет?

С развернутым я говорю о полной mdiArea (Workspace)

1 Ответ

0 голосов
/ 26 сентября 2019

windowState () возвращает набор флагов, поэтому, например, windowState () может указывать, что окно активно (Qt :: WindowActive) и развернуто (Qt :: WindowMaximized), поэтому, если вы хотите проверить, является ли один из нихактивен, вы должны использовать оператор "&":

if(widget->windowState() & Qt::WindowMaximized)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...