在我们的目标设备中,我们使用-qws参数运行我们的QtE应用程序。要旋转屏幕,我们指定“-display transformed:rot90”作为app参数,它运行良好。
但是,我们有一个在应用内旋转屏幕的功能,所以我们尝试使用QScreen中记录的API:
QWSDisplay::setTransformation(QTransformedScreen::Rot90, 0);
但是这个API根本不起作用。它在控制台输出中没有错误消息。
有谁知道这个API发生了什么?我们需要启用其他东西吗?
答案 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
函数更改方向。