Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用Qt中的屏幕旋转_Qt_Screen Rotation - Fatal编程技术网

禁用Qt中的屏幕旋转

禁用Qt中的屏幕旋转,qt,screen-rotation,Qt,Screen Rotation,有没有一种简单的方法可以在整个应用程序的Qt中禁用屏幕旋转?我只是不想担心这一点,只是简单地禁用它 我正在使用Qt5.8,目标是Windows。最好的方法是禁用Windows中的旋转。 我看到的唯一其他方法是显示根据当前设备方向旋转的widgets/qml。 以下是在Windows下获取当前方向的代码(在Windows 8.1平板电脑上测试): #包括 枚举类定向 { 旋转0, 旋转90度, 旋转180度, 旋转U 270 }; EOrientation CYourViewManager::ge

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


我正在使用Qt5.8,目标是Windows。

最好的方法是禁用Windows中的旋转。 我看到的唯一其他方法是显示根据当前设备方向旋转的widgets/qml。 以下是在Windows下获取当前方向的代码(在Windows 8.1平板电脑上测试):

#包括
枚举类定向
{
旋转0,
旋转90度,
旋转180度,
旋转U 270
};
EOrientation CYourViewManager::getOrientation()常量
{
DEVMODE设备模式;
如果(!EnumDisplaySettings(NULL、0和deviceMode))
返回方向::旋转0;
开关(deviceMode.dmDisplayOrientation)
{
案例DMDO_90:
返回方向:旋转90度;
案例DMDO_180:
返回方向:旋转180度;
案例DMDO_270:
返回方向::旋转_270;
}
返回方向::旋转0;
}

这是毫无意义的,因为从你的角度来看,屏幕旋转与屏幕分辨率的改变是一样的,如果你关闭它,你的用户将理所当然地憎恨你


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

很抱歉,对于Windows应用程序,屏幕旋转是一个什么问题?我不认为屏幕旋转对于任何桌面平台都是一个问题?谢谢你给我的启发:-)@Danyright这不是一个问题,不是因为台式机没有改变屏幕方向,而是因为屏幕旋转对应用程序来说就像分辨率改变一样。换句话说,它基本上是无关紧要的。我忘了提到它的平板电脑应用。
#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;
}