简介

一般情况下都是在XML里进行设置横屏或者竖屏或者动态旋转,不过要想在app里动态的旋转屏幕就要用到QandroidJniObject之类的操作类了。以下示例是加了一个按钮,点击之后会在横屏和竖屏之间切换。

版本 QT 5.8(QT版本大于5.3理论上都支持)

示例:

Pro文件里添加

QT      += androidextras

头文件:

#include<QtAndroidExtras/QAndroidJniObject>
#include<QtAndroidExtras/QAndroidJniEnvironment>
#include<QtAndroidExtras/QtAndroid>
#include <QtAndroidExtras>

实现文件:

using namespace QtAndroid;
void Mainwindow::on_pushbutton_clicked()//orient控制旋转
{
QAndroidJniEnvironment env;
    QAndroidJniObject activity = androidActivity();
    jint orient = activity.callMethod<jint>( "getRequestedOrientation" );
    if(env->ExceptionCheck())
    {
        qDebug() << "exception occured";
        env->ExceptionClear();
    }
 
    if(orient == 1)
    {
        orient = 0;
    }
    else
    {
       orient=1;
    }
    activity.callMethod<void>("setRequestedOrientation", "(I)V", orient);
    if(env->ExceptionCheck())
    {
        qDebug() << "exception occured";
        env->ExceptionClear();
    }
}

效果展示

在这里插入图片描述
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐