我们在编写上位机的过程中,有时会有一种需求,当上位机一打开就锁定屏幕,比如在安卓平板或者手机里面的王者荣耀游戏打开只有横屏显示。我这里以安卓平板为例(如何在window系统下利用Qt开发运行在安卓系统上的上位机请关注下一条博客),手机也是一样:
Qt上位机软件如何横屏显示呢?步骤如下:
1、打开上位机源码目录,编译生成的build文件下找到AndroidManifest.xml文件,我的文件目录如下:
build-xxx(文件名)-Android_for_arm64_v8a_Clang_Qt_5_12_6_for_Android_ARM64_v8a-Debug----->android-build----->AndroidManifest.xml
2、然后再Qt源码目录里边任意创建一个文件夹(我这里是filename)
源文件目录-->
将AndroidManifest.xml复制黏贴到filename文件加下:
利用文本编辑器打开AndroidManifest.xml文件找到 android:screenOrientation="unspecified"这一行,这行代码就是指定编译生成的显示格式。
将android:screenOrientation="unspecified"这一行中单词unspecified改成sensorLandscape,这样编译生成的apk软件运行在安卓平板里面就自动横屏显示了。
最后修改一下在源码文件.pro下,加一行代码表示指定文件路径。其中PWD指令表示当前文件路径(学过linux应该知道,pwd就是获取当前路径shell命令)
扩展:除了横屏显示之外,还可以设置多种显示样式,只需将android:screenOrientation="unspecified"中的unspecified替换成以下指令,总结如下:
指令 | 含义 |
unspecified | 默认值,自动横竖屏 |
landscape | 强制横屏显示,不旋转 |
portrait, | 强制竖屏显示,不旋转 |
sensorLandscape | 横屏旋转,一般横屏游戏会这样设置,比如王者农药 |
sensor | 根据物理传感器方向转动,用户90度、180度、270度旋转手机方向,activity都更着变化 |
sensorPortrait | 竖屏旋转 |
nosensor | 旋转设备,界面不跟着旋转 |
........ | ...... |