Отключить поворот экрана в Qt
Есть ли простой способ отключить поворот экрана в Qt для всего приложения? Я просто не хочу беспокоиться об этом и просто отключить это.
Я использую Qt 5.8 и ориентируюсь на Windows.
2 ответа
Лучшим способом было бы отключить вращение в Windows. Единственный другой способ, который я вижу, - это отображение ваших виджетов /qml повернутым в соответствии с текущей ориентацией устройства. Вот код для получения текущей ориентации под Windows (проверено на планшете с Windows 8.1):
#include <Windows.h>
enum class EOrientation
{
Rotate_0,
Rotate_90,
Rotate_180,
Rotate_270
};
EOrientation CYourViewManager::getOrientation() const
{
DEVMODE deviceMode;
if (!EnumDisplaySettings(NULL, 0, &deviceMode))
return EOrientation::Rotate_0;
switch (deviceMode.dmDisplayOrientation)
{
case DMDO_90:
return EOrientation::Rotate_90;
case DMDO_180:
return EOrientation::Rotate_180;
case DMDO_270:
return EOrientation::Rotate_270;
}
return EOrientation::Rotate_0;
}
Это бессмысленно, потому что поворот экрана с вашей точки зрения совпадает с изменением разрешения экрана, и если вы его отключите, ваши пользователи будут справедливо ненавидеть вас.
Если вы хотите проверить свой код на совместимость с поворотом экрана, эмулируйте его, изменив разрешение экрана.