在Qt应用中强制使用横屏或竖屏
From Forum Nokia Wiki
摘要:本文介绍怎么在Qt for Symbian程序中即使手机水平状态发生变化的时候强制使用横屏或竖屏。
对于带有水平传感器的Symbian手机,在用户将手机从横屏模式(Landscape)切换到竖屏模式(Portrait)时,系统会自动调整手机的屏幕显示方向,满足用户正常的使用需要。屏幕横宽比的变化,需要应用调整窗口的布局,以保证更好的用户体验。
但是在某些特殊场合中(比如游戏),开发者可能希望即使手机的水平状态已经变化,需要屏幕继续保持原来的屏幕方向,提示用户只能在横屏或者竖屏方向上使用当前的应用,这就需要通过设置,让手机屏幕强制处在横屏或者竖屏状态。
Qt的当前版本(Qt-4.6.2)并没有提供直接控制Symbian 手机屏幕模式的API,需要通过使用Symbian的API来完成。设置API函数为:CAknAppUi::SetOrientationL(); 在Qt中的使用显示代码如下:
#ifdef Q_OS_SYMBIAN
void MyWidget::setPortraitMode()
{
CAknAppUi *aknAppUi = dynamic_cast<CAknAppUi *>(CEikonEnv::Static()->AppUi());
if (aknAppUi)
aknAppUi->SetOrientationL(CAknAppUi::EAppUiOrientationPortrait);
}
void MyWidget::setLandscapeMode()
{
CAknAppUi *aknAppUi = dynamic_cast<CAknAppUi *>(CEikonEnv::Static()->AppUi());
if (aknAppUi)
aknAppUi->SetOrientationL(CAknAppUi::EAppUiOrientationLandscape);
}
#endif
要使用上面代码中的Symbian函数,需要在代码里把symbian的几个相关头文件加入到源码中
#ifdef Q_OS_SYMBIAN
#include <eikenv.h>
#include <coemain.h>
#include <aknappui.h>
#endif
并且需要在Qt的.pro工程文件中加入以下内容,保证应用能够编译和链接
symbian {
LIBS += -lconnmon -lcone -lavkon
}
注意:该功能在模拟器上不能模拟,但是在Symbian手机上工作正常。
分享到:
相关推荐
在博客文章"嵌入式Qt5.6应用编程之触摸屏控制LED灯"中,作者Ningjianwen可能详细阐述了上述过程中的每个步骤,并可能给出了具体的代码示例。通过阅读这篇文章,开发者可以获得实际操作的指导,学习如何在嵌入式系统...
在Qt应用中集成Redis,我们通常会使用第三方库如`QRedis`,这是一个基于Qt的Redis客户端库,它提供了一系列方便的API来操作Redis。首先,你需要将`QRedis`库添加到你的Qt项目中,可以通过配置项目文件.pro或使用...
win10系统上基于qt5.12通过qss实现一键换肤以及Font Awesome字体在qt中的应用,欢迎大家下载使用!!!——————————————win10系统上基于qt5.12通过qss实现一键换肤以及Font Awesome字体在qt中的应用,...
在Qt中使用WebEngine,开发者可以通过QWebEngineView类来显示Web内容。首先,需要创建一个QWebEngineView实例,然后加载H5应用的URL或本地HTML文件。对于复杂的H5应用,可能需要自定义JavaScript接口,通过...
在Android系统中,屏幕通常支持横屏和竖屏两种模式,而在QT框架下开发应用时,我们可以通过编程方式实现屏幕的动态旋转,而不是仅仅在XML布局文件中预设固定的方向。 QT是一个跨平台的C++开发框架,广泛用于创建...
在Qt中,当控件需要绘制自身时,会调用paintEvent()函数。通过重写这个函数,开发者可以控制控件的绘制过程,从而实现定制化的显示效果,如将原本水平的标签页改画为垂直的。 5. **QSS(Qt StyleSheet)** QSS...
在QT中,屏幕捕获通常涉及到`QPixmap`或`QImage`类。这些类可以用来创建和处理像素级别的图像数据。首先,我们需要获取当前屏幕的分辨率信息,然后创建一个与屏幕大小相同的`QPixmap`或`QImage`对象。接下来,使用`...
文章首先介绍了触摸屏的应用前景和QT的优势,然后详细介绍了基于QT的触摸屏驱动的设计原理和实现过程,并结合大量源代码进行分析,提出了基于QT的触摸屏驱动的开发方案,并在相关的应用设备上实现了基于QT触摸屏的...
在QT中,可以使用QLabel、QTextEdit等控件来显示文本,但它们本身并不支持滚动功能。为了实现滚动效果,我们需要借助自定义控件或者Qt提供的动画框架。这里,"HTextView"可能是一个自定义的控件类,用于实现水平滚动...
QT4SoftKeyboard-master是一个在QT4环境下开发的触摸屏软键盘项目。QT4是一个流行的开源C++图形用户界面应用程序框架,特别适用于开发跨平台的应用程序。这个项目的主要目的是为没有物理键盘的设备,如触摸屏设备,...
首先,理解QT中的`QDesktopWidget`类是关键。`QDesktopWidget`提供了一个接口,用于获取关于系统桌面的信息,包括可用的显示器数量、每个显示器的几何信息等。利用这些信息,我们可以确定窗口应该在哪个显示器上显示...
- **多平台支持**:由于使用了Qt,项目可以在多种操作系统上运行,具备良好的跨平台兼容性。 总的来说,Qt数据可视化大屏电子看板是一个高效、灵活且易用的数据展示解决方案,适合于监控中心、企业汇报、数据分析等...
在Qt中,触摸屏输入主要通过`QTouchEvent`类来处理。当用户在触摸屏上进行操作时,如按下、移动或释放手指,系统会产生相应的触摸事件。开发者可以通过重写`QWidget`或其子类的`touchEvent()`方法来捕获并处理这些...
标题中的“qt5下mqtt的库可以直接在qt下使用mqtt”指的是在Qt5开发环境中,开发者可以方便地利用MQTT库进行物联网通信。MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息协议,常用于低带宽、高延迟...
本篇文章将详细讲解如何在Qt中获取屏幕坐标,并结合提供的代码片段进行解析。 首先,我们要引入Qt的桌面环境相关的类`QDesktopWidget`。`QDesktopWidget`是一个系统级的窗口管理器,它提供了与屏幕、工作区和显示器...
这个过程涉及到QT的库使用、DLL的创建以及如何在不同的QT应用程序中调用DLL中的功能。下面我们将详细探讨这些知识点。 1. **QT库的管理**: - QT库分为静态库和动态库两种形式。静态库将所有依赖项打包到可执行...
它内置了QWebView和QWebEngineView组件,这两个组件可以用来在QT应用中嵌入Web页面。QWebView是QT4中的组件,而QWebEngineView是QT5及更高版本中更新的替代品,它基于Chromium引擎,提供了更好的性能和现代Web标准的...
下面是 Qt 中 Pro 文件中使用的系统变量的说明: TEMPLATE TEMPLATE 系统变量用于指定模板类型,告诉 qmake 生成哪种类型的 Makefile。例如,TEMPLATE = app 指定生成一个应用程序的 Makefile,TEMPLATE = lib ...
这些实例将深入到这些模块中,展示如何在实际项目中使用它们。例如,你可以找到如何创建一个简单的窗口应用,如何处理用户输入,如何显示图像,以及如何与服务器进行数据交换等。 对于初学者,这些实例提供了逐步...
即在QT应用程序运行时,如果USB接口的触摸屏断开,或者运行中触摸屏断开,之后如果触摸屏设备又自动恢复,应用程序是不能自动恢复触摸屏的工作,只能退出应用程序然后再重新启动应用程序,才能继续使用触摸屏。...