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;
  }
};
X类:公共QObject
{
Q_对象
公众:
X():
QObject()
{
QTimer*t=新的QTimer(本);
连接(t,信号(timeout()),此,插槽(OnTimerEvent());
t->启动(2500);
}
公众时段:
内联void OnTimerEvent()
{
静态int v=0;
++五,;
QWSDisplay::setTransformation(v%4);

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