Qt嵌入式屏幕内旋转应用程序

时间:2014-02-20 06:07:42

标签: qt qtembedded

在我们的目标设备中,我们使用-qws参数运行我们的QtE应用程序。要旋转屏幕,我们指定“-display transformed:rot90”作为app参数,它运行良好。

但是,我们有一个在应用内旋转屏幕的功能,所以我们尝试使用QScreen中记录的API:

QWSDisplay::setTransformation(QTransformedScreen::Rot90, 0);

但是这个API根本不起作用。它在控制台输出中没有错误消息。

有谁知道这个API发生了什么?我们需要启用其他东西吗?

1 个答案:

答案 0 :(得分:1)

与其他qt文档相反,qt的嵌入部分的文档确实很差。经过几天摆弄它,我终于设法解决了。

首先要做的是使用-qt-gfx-transformed选项(以及您需要的任何内容)编译库。

然后编译应用程序,并使用已用于激活转换驱动程序的选项启动它。我实际上是这样开始的:

export QWS_DISPLAY=Transformed:Rot90:0
./app

作为测试,我实现了这个,以测试旋转是否有效:

class X : public QObject
{
  Q_OBJECT
public :
  X() :
    QObject()
  {
    QTimer *t = new QTimer( this );
    connect( t, SIGNAL(timeout()), this, SLOT(OnTimerEvent()));
    t->start( 2500 );
  }

public slots :
  inline void OnTimerEvent()
  {
    static int v = 0;
    ++v;

    QWSDisplay::setTransformation(v%4);

    std::cout<<v<<std::endl;
  }
};

因此,在计时器插槽中,我正在使用QWSDisplay::setTransformation函数更改方向。