qt5 arm linuxfb旋转显示非eglfs显示

qt5 arm linuxfb旋转显示非eglfs显示。

网上的旋转显示都是这种方法 :

#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsProxyWidget>
#include "./form.h"
int main(int argc, char *argv[])
{    
    QApplication a(argc, argv);
    Form *form = new Form;
    QGraphicsScene *scene = new QGraphicsScene;    
    QGraphicsProxyWidget *w = scene->addWidget(form);   
    w->setRotation(90);    
    QGraphicsView *view = new QGraphicsView(scene);    

    view->show();

    return a.exec();
}

此方法缺点:
若某个窗口与主窗口没有父子关系,这个窗口没有添加到scene里,那么显示这个窗口时就不会同步转屏。

而且这样做会很耗费cpu资源。同样一个动态的hello world 显示。使用了这段代码后会慢很多。cpu使用率100%。

正文:

笔者通过修改qt5源码可以支持想qt4那样设置环境变量进行旋转显示,修改代码后支持鼠标的正常使用,触摸坐标不正常(要正常使用需要修改tslib的校准程序,最简单的方法是在校准程序里把5个光标一起全部显示出来然后自己从某个角顺时针或逆时针点击光标,具体情况要看你旋转多少度显示。当然也还有其它的方法,可能你的触摸也正常因为我的tslib源码之前就是修改过的)。

qt5源码修改内容可以看补丁文件(http://download.csdn.net/detail/longruic/9846273,qt5 arm linuxfb旋转显示非eglfs显示的补丁)。我是先备份源码,然后修改测试OK后,再制作补丁这方便知道如何修改源码。

最后运行程序时加入参数即可,例如:

-platform linuxfb:fb=/dev/fb0:rotation=90

或者设置环境变量
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:rotation=90




  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值