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

Qt嵌入式屏幕旋转应用程序内部,qt,qtembedded,Qt,Qtembedded,在目标设备中,我们使用-qws参数运行QtE应用程序。要旋转屏幕,我们指定-display transformed:rot90作为应用程序参数,它工作得很好 但是,我们有一个在应用程序内旋转屏幕的功能,因此我们尝试以下QScreen中记录的API: QWSDisplay::setTransformation(QTransformedScreen::Rot90, 0); 但是这个API根本不起作用。控制台输出中没有错误消息 有人知道这个API是怎么回事吗?我们需要启用其他功能吗?与其他qt文档不

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

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

QWSDisplay::setTransformation(QTransformedScreen::Rot90, 0);
但是这个API根本不起作用。控制台输出中没有错误消息


有人知道这个API是怎么回事吗?我们需要启用其他功能吗?

与其他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;
  }
};

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

谢谢。你的回复让我回到了几个月前我写的代码。我重写了一个测试程序来再次确认你说的话,神奇的是它确实起作用了!我发现在我的例子中,如果我没有在应用程序启动时导出QWS_DISPLAY=Transformed:Rot0,我就无法通过API对其进行旋转。也许这就是我无法在代码中成功完成的原因。再次感谢!