在Qt 应用中强制使用横屏或竖屏
创始人
2024-07-31 20:30:53
0

本文介绍的是在Qt 应用中强制使用横屏竖屏的实现,有时候看图片、看电影、玩游戏、看电子书等一些操作时,我们希望屏幕是跟着自己转变的,那样很方便使用。先看本文的讲解吧。

对于带有水平传感器的Symbian手机,在用户将手机从横屏模式(Landscape)切换到竖屏模式(Portrait)时,系统会自动调整手机的屏幕显示方向,满足用户正常的使用需要。屏幕横宽比的变化,需要应用调整窗口的布局,以保证更好的用户体验。

但是在某些特殊场合中(比如游戏),开发者可能希望即使手机的水平状态已经变化,需要屏幕继续保持原来的屏幕方向,提示用户只能在横屏或者竖屏方向上使用当前的应用,这就需要通过设置,让手机屏幕强制处在横屏或者竖屏状态。

Qt的当前版本(Qt-4.6.2)并没有提供直接控制Symbian 手机屏幕模式的API,需要通过使用Symbian的API来完成

设置API函数为:CAknAppUi::SetOrientationL();

在Qt中的使用显示代码如下:

  1. #ifdef Q_OS_SYMBIAN  
  2. void MyWidget::setPortraitMode()  
  3. {  
  4. CAknAppUi *aknAppUi = dynamic_cast(CEikonEnv::Static()->AppUi());  
  5. if (aknAppUi)  
  6. aknAppUi->SetOrientationL(CAknAppUi::EAppUiOrientationPortrait);  
  7. }  
  8.  
  9. void MyWidget::setLandscapeMode()  
  10. {  
  11. CAknAppUi *aknAppUi = dynamic_cast(CEikonEnv::Static()->AppUi());  
  12. if (aknAppUi)  
  13. aknAppUi->SetOrientationL(CAknAppUi::EAppUiOrientationLandscape);  
  14. }  
  15. #endif 

要使用上面代码中的Symbian函数,需要在代码里把symbian的几个相关头文件加入到源码中

 

  1. #ifdef Q_OS_SYMBIAN  
  2. #include  
  3. #include  
  4. #include  
  5. #endif 

并且需要在Qt的.pro工程文件中加入以下内容,保证应用能够编译和链接

 

  1. symbian {  
  2. LIBS += -lconnmon -lcone -lavkon  

 

注意:该功能在模拟器上不能模拟,但是在Symbian手机上工作正常。

小结:关于在Qt 应用中强制使用横屏竖屏的实现,内容讲述完了,不知道有没有帮助到你!

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...