Qt: showMaximized () не работает в Windows

Я открываю файл в моем приложении (в Windows) от двойной щелчок Это. Я передаю имя файла, полученное через аргумент, в мою открытую логику. Там я звоню showMaximized (), но это не поднимается. Открываемое окно не развернуто и по умолчанию расположено в верхнем левом углу экрана.

Обратите внимание, что весь этот логический поток проходит через главный() и поэтому showMaximized () вероятно вызывается до начала цикла обработки событий. Это останавливает showMaximized () правильно работать? Если да, как это решить?

Я также пытался использовать QTimer :: SingleShot (0, …, …) (чтобы позволить началу цикла событий), но это даже остановило запуск не развернутого экрана.

PS: в макинтош экран становится максимальным, как это происходит через событие (QEvent :: FileOpen)

5

Решение

Самый простой способ это использовать размер (800,600) Перед использованием showMaximized (). У меня есть похожая ошибка в Qt 5.7.0 на Windows 8.1.

3

Другие решения

В самый первый раз, когда процесс вызывает ShowWindow, команда show игнорируется и использует команду, предоставленную в структуре STARTUPINFO (которая должна соответствовать параметру nCmdShow в WinMain).

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx

Это удивительное поведение имеет тенденцию проявляться в проблемах, подобных той, которую вы описываете. Вы можете решить эту проблему, просто дважды выполнив вызов QT showMaximized, если вы не хотите использовать какие-либо вызовы Win32 API напрямую.

0

По вопросам рекламы [email protected]