Отключить поворот экрана в 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;
}

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

Если вы хотите проверить свой код на совместимость с поворотом экрана, эмулируйте его, изменив разрешение экрана.

Другие вопросы по тегам