`
syoukenn
  • 浏览: 6998 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

在Qt应用中强制使用横屏或竖屏

阅读更多

在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灯.tar.gz

    在博客文章"嵌入式Qt5.6应用编程之触摸屏控制LED灯"中,作者Ningjianwen可能详细阐述了上述过程中的每个步骤,并可能给出了具体的代码示例。通过阅读这篇文章,开发者可以获得实际操作的指导,学习如何在嵌入式系统...

    Qt 应用Redis 实现消息队列

    在Qt应用中集成Redis,我们通常会使用第三方库如`QRedis`,这是一个基于Qt的Redis客户端库,它提供了一系列方便的API来操作Redis。首先,你需要将`QRedis`库添加到你的Qt项目中,可以通过配置项目文件.pro或使用...

    qt5.12通过qss实现一键换肤以及Font Awesome字体在qt中的应用,欢迎大家下载使用!!!

    win10系统上基于qt5.12通过qss实现一键换肤以及Font Awesome字体在qt中的应用,欢迎大家下载使用!!!——————————————win10系统上基于qt5.12通过qss实现一键换肤以及Font Awesome字体在qt中的应用,...

    使用Qt Web引擎嵌入H5应用框架源码,可以很方便的将web应用作为桌面应用。

    在Qt中使用WebEngine,开发者可以通过QWebEngineView类来显示Web内容。首先,需要创建一个QWebEngineView实例,然后加载H5应用的URL或本地HTML文件。对于复杂的H5应用,可能需要自定义JavaScript接口,通过...

    QT安卓屏幕动态旋转

    在Android系统中,屏幕通常支持横屏和竖屏两种模式,而在QT框架下开发应用时,我们可以通过编程方式实现屏幕的动态旋转,而不是仅仅在XML布局文件中预设固定的方向。 QT是一个跨平台的C++开发框架,广泛用于创建...

    Qt竖向tab标签页面源码

    在Qt中,当控件需要绘制自身时,会调用paintEvent()函数。通过重写这个函数,开发者可以控制控件的绘制过程,从而实现定制化的显示效果,如将原本水平的标签页改画为垂直的。 5. **QSS(Qt StyleSheet)** QSS...

    QT实现的拷屏ScreenCapture

    在QT中,屏幕捕获通常涉及到`QPixmap`或`QImage`类。这些类可以用来创建和处理像素级别的图像数据。首先,我们需要获取当前屏幕的分辨率信息,然后创建一个与屏幕大小相同的`QPixmap`或`QImage`对象。接下来,使用`...

    基于QT的触摸屏驱动在LINUX下的应用设计.pdf

    文章首先介绍了触摸屏的应用前景和QT的优势,然后详细介绍了基于QT的触摸屏驱动的设计原理和实现过程,并结合大量源代码进行分析,提出了基于QT的触摸屏驱动的开发方案,并在相关的应用设备上实现了基于QT触摸屏的...

    QT-横向字体滚动显示,可用于报警显示或消息内容提示

    在QT中,可以使用QLabel、QTextEdit等控件来显示文本,但它们本身并不支持滚动功能。为了实现滚动效果,我们需要借助自定义控件或者Qt提供的动画框架。这里,"HTextView"可能是一个自定义的控件类,用于实现水平滚动...

    QT4环境下,触摸屏软键盘代码Qt4SoftKeyboard-master

    QT4SoftKeyboard-master是一个在QT4环境下开发的触摸屏软键盘项目。QT4是一个流行的开源C++图形用户界面应用程序框架,特别适用于开发跨平台的应用程序。这个项目的主要目的是为没有物理键盘的设备,如触摸屏设备,...

    QT4.7.2 在多块显示屏上显示窗口的例程

    首先,理解QT中的`QDesktopWidget`类是关键。`QDesktopWidget`提供了一个接口,用于获取关于系统桌面的信息,包括可用的显示器数量、每个显示器的几何信息等。利用这些信息,我们可以确定窗口应该在哪个显示器上显示...

    Qt数据可视化大屏电子看板

    - **多平台支持**:由于使用了Qt,项目可以在多种操作系统上运行,具备良好的跨平台兼容性。 总的来说,Qt数据可视化大屏电子看板是一个高效、灵活且易用的数据展示解决方案,适合于监控中心、企业汇报、数据分析等...

    qt触摸屏实例

    在Qt中,触摸屏输入主要通过`QTouchEvent`类来处理。当用户在触摸屏上进行操作时,如按下、移动或释放手指,系统会产生相应的触摸事件。开发者可以通过重写`QWidget`或其子类的`touchEvent()`方法来捕获并处理这些...

    qt5下mqtt的库可以直接在qt下使用mqtt

    标题中的“qt5下mqtt的库可以直接在qt下使用mqtt”指的是在Qt5开发环境中,开发者可以方便地利用MQTT库进行物联网通信。MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息协议,常用于低带宽、高延迟...

    Qt 获取屏幕坐标

    本篇文章将详细讲解如何在Qt中获取屏幕坐标,并结合提供的代码片段进行解析。 首先,我们要引入Qt的桌面环境相关的类`QDesktopWidget`。`QDesktopWidget`是一个系统级的窗口管理器,它提供了与屏幕、工作区和显示器...

    将QT界面做成dll在qt其他程序中调用

    这个过程涉及到QT的库使用、DLL的创建以及如何在不同的QT应用程序中调用DLL中的功能。下面我们将详细探讨这些知识点。 1. **QT库的管理**: - QT库分为静态库和动态库两种形式。静态库将所有依赖项打包到可执行...

    QT应用程序与web页面通信

    它内置了QWebView和QWebEngineView组件,这两个组件可以用来在QT应用中嵌入Web页面。QWebView是QT4中的组件,而QWebEngineView是QT5及更高版本中更新的替代品,它基于Chromium引擎,提供了更好的性能和现代Web标准的...

    QT中pro文件使用的系统变量的说明

    下面是 Qt 中 Pro 文件中使用的系统变量的说明: TEMPLATE TEMPLATE 系统变量用于指定模板类型,告诉 qmake 生成哪种类型的 Makefile。例如,TEMPLATE = app 指定生成一个应用程序的 Makefile,TEMPLATE = lib ...

    qt 应用程序实例包括开发的qt各个方面

    这些实例将深入到这些模块中,展示如何在实际项目中使用它们。例如,你可以找到如何创建一个简单的窗口应用,如何处理用户输入,如何显示图像,以及如何与服务器进行数据交换等。 对于初学者,这些实例提供了逐步...

    嵌入式linux解决QT应用程序不响应触摸屏的问题

    即在QT应用程序运行时,如果USB接口的触摸屏断开,或者运行中触摸屏断开,之后如果触摸屏设备又自动恢复,应用程序是不能自动恢复触摸屏的工作,只能退出应用程序然后再重新启动应用程序,才能继续使用触摸屏。...

Global site tag (gtag.js) - Google Analytics