在Qt中禁用屏幕旋转

时间:2017-05-09 08:26:00

标签: qt screen-rotation

是否有一种简单的方法可以在整个应用程序的Qt中禁用屏幕旋转?我只是不想担心,只是禁用它。

我正在使用Qt 5.8并定位Windows。

2 个答案:

答案 0 :(得分:0)

最好的方法是在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;
}

答案 1 :(得分:0)

这是没有意义的,因为从您的角度来看屏幕旋转与屏幕分辨率更改相同,如果您关闭 ,您的用户将会正确地讨厌您。

如果您希望测试代码与屏幕旋转的兼容性,请通过更改屏幕分辨率来模拟它。