Spec-Zone.ru › Qt 5.15

Qt для Windows — Особенности

Эта страница содержит информацию о Qt для Windows.

Расположение установки

Установка Qt в директорию с пробелами, например, C:\Program Files, может вызвать ошибки линковщика, такие как следующие:

c:\program.obj not found

Установите Qt в поддиректорию без пробелов, чтобы избежать этой проблемы.

Возможный конфликт GL

Существует известная проблема при запуске Microsoft NetMeeting, Lotus SameTime и других приложений, требующих захвата экрана, при включенном прямом рендеринге. Другие приложения GL могут работать некорректно, если прямой рендеринг отключён.

Visual Studio

Компилятор Visual C++ Linker не понимает имена файлов с пробелами (например, C:\Program files\Qt\), поэтому вам придётся переместить его в другое место или явно указать путь.

QTDIR=C:\Progra~1\Qt

Если у вас возникают странные проблемы с использованием специальных флагов, изменяющих выравнивание элементов структуры и объединения (например, /Zp2), вам необходимо перекомпилировать Qt с флагами, установленными для приложения.

Окна полноэкранного режима на основе OpenGL

При использовании окном поверхности на основе OpenGL и отображении в полноэкранном режиме могут возникнуть проблемы с другими верхними окнами, которые являются частью приложения. Из-за ограничений Windows DWM композирование не обрабатывается корректно для окон на основе OpenGL при переходе в полноэкранный режим. В результате другие верхние окна не размещаются поверх полноэкранного окна при их отображении. Например, меню может не отображаться корректно или диалоговые окна не появляются.

Окно может использовать поверхность на основе OpenGL явно, когда вызывается setSurfaceType(), или когда внутри окна используется что-то, требующее OpenGL, что приводит к тому, что всё окно становится на основе OpenGL. Например, QOpenGLWidget или QQuickWidget могут вызвать это. Однако, если поверхность находится в QWindow, который размещён с помощью createWindowContainer(), или используется устаревший QGLWidget, который полностью покрывает полноэкранное окно, то эта проблема не возникает.

Для решения этой проблемы можно использовать QWindowsWindowFunction для включения системного флага Windows, который установит WS_BORDER при отображении в полноэкранном режиме. Это можно использовать следующим образом:

QWindowsWindowFunctions::setHasBorderInFullScreen(tlwWindow->windowHandle(), true);

Это даст полноэкранному окну 1-пиксельную границу, что позволит другим верхним окнам отображаться поверх него.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/windows-issues.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API