в Qt, Как сделать окно текущим окном? - PullRequest
9 голосов
/ 11 февраля 2010

Мое приложение QT имеет несколько окон, и иногда, даже если окна уже открыты, но скрыты под другими окнами, пользователь выберет опцию, чтобы открыть одно из меню главного окна, в этом случае я хочу просто вызвать его и сделать это текущий. Теперь использование QWidget-> повышение делает это окно поверх всех других окон, но оно не выбирает его, и это то, что мне нужно сделать. Я пытался QWidget-> setFocus, но это ничего не делает. В то же время я использую комбинацию QWidget-> close с последующим QWidget-> show, но я хотел бы знать, есть ли команда для использования с -> повышение.

Я пытался:

        pMission->raise();
        pMission->setFocus(Qt::ActiveWindowFocusReason);

но это не сработало, поэтому я использовал:

        pMission->close();
        pMission->show();

Ответы [ 2 ]

10 голосов
/ 11 февраля 2010

Вы когда-нибудь пробовали QWidget :: activWindow?

Из файла справки эта функция будет

Устанавливает виджет верхнего уровня, содержащий этот виджет, в качестве активного окна. Активное окно - это видимое окно верхнего уровня с фокусом ввода с клавиатуры.

3 голосов
/ 06 марта 2012

На MacOS Lion с Qt 4.8.0, поднятие () было единственным, который работал для меня. activWindow () и setFocus () этого не сделали.

(мне не хватает кармы, чтобы прокомментировать ответ Мейсона)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...