Как довести окно до фронта в Qt [дубликат]

Это означает, что ваш код использовал ссылочную переменную объекта, которая была установлена ​​в нуль (т. е. она не ссылалась на экземпляр фактического объекта).

Чтобы предотвратить ошибку, объекты, которые могут быть пустыми, должны быть протестированы для null перед тем, как использовать.

if (myvar != null)
{
    // Go ahead and use myvar
    myvar.property = ...
}
else
{
    // Whoops! myvar is null and cannot be used without first
    // assigning it to an instance reference
    // Attempting to use myvar here will result in NullReferenceException
}
14
задан Cody Gray 22 May 2011 в 17:14
поделиться

4 ответа

Эта проблема специфична для Windows. Если активное окно принадлежит к некоторому процессу, то Windows не разрешает другим процессам изменять активное окно.

(Не пытайтесь выполнить следующее: https://wiki.qt.io/Qt_project_org_faq #QWidget _ :: activateWindow.28.29 _-_ behavior_under_windows )

4
ответ дан Hossein 26 August 2018 в 00:45
поделиться
for ( QWindow* appWindow : qApplication.allWindows() )
{
  appWindow->show(); //bring window to top on OSX
  appWindow->raise(); //bring window from minimized state on OSX

  appWindow->requestActivate(); //bring window to front/unminimize on windows
}

Обратите внимание, что это также отображает окно с других виртуальных рабочих столов как на OSX, так и на Windows. Я не тестировал это на linux, но может работать.

1
ответ дан agnu17 26 August 2018 в 00:45
поделиться

Эта проблема не относится к Windows ... У меня такая же проблема для Linux. Мое решение состояло в том, чтобы закрыть окно окна перед его открытием ().

0
ответ дан Bruce Chidester 26 August 2018 в 00:45
поделиться

попробуйте это:

viewer.setWindowState( (windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
viewer.raise();  // for MacOS
viewer.activateWindow(); // for Windows

он работает в моем проекте (в моем проекторе - QMainWindow): https://github.com/iptton/Rythem .

18
ответ дан iptton 26 August 2018 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: