2017-05-09 130 views
0

有沒有簡單的方法來禁用整個應用程序的Qt中的屏幕旋轉?我只是不想擔心這一點,只是簡單地禁用它。在Qt中禁用屏幕旋轉

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

+2

對不起,但屏幕旋轉是Windows應用程序的一個問題?我沒有看到屏幕旋轉將會成爲任何桌面平臺的問題嗎?感謝您的啓發:-) – Danyright

+0

@Danyright這不是一個問題,不是因爲桌面不改變屏幕方向,而是因爲屏幕旋轉看起來像一個應用程序就像分辨率改變會。換句話說,它幾乎是無關緊要的。 –

+0

我忘了提及它的平板電腦應用程序。 – naide

回答

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; 
} 
0

這是沒有意義的,因爲從你的角度屏幕旋轉相同的屏幕分辨率的變化,如果你把關閉,您的用戶將會正確地討厭你。

如果您希望測試代碼與屏幕旋轉的兼容性,請通過更改屏幕分辨率來模擬它。