我有一个嵌入式Linux应用程序直接在Linux帧缓冲区上运行(没有X窗口)。现在我们必须将显示器物理旋转180度。我该如何使我的Qt应用程序旋转,以便不会倒置?我看到参考使用以下选项:
-platform linuxfb:fb=/dev/fb0:rotation:180
然而,旋转选项似乎被忽略了。
在Ubuntu 16.04.6服务器上使用Qt 5.9.2
我有一个嵌入式Linux应用程序直接在Linux帧缓冲区上运行(没有X窗口)。现在我们必须将显示器物理旋转180度。我该如何使我的Qt应用程序旋转,以便不会倒置?我看到参考使用以下选项:
-platform linuxfb:fb=/dev/fb0:rotation:180
然而,旋转选项似乎被忽略了。
在Ubuntu 16.04.6服务器上使用Qt 5.9.2
您可以在应用程序级别处理它。使用QML很容易,但是对于QWidgets,我能想到的最好方法是将小部件呈现在 QGraphicsScene
上并像这样旋转它:
#include "mainwindow.h"
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QGraphicsScene *scene = new QGraphicsScene();
QGraphicsView *view = new QGraphicsView();
view->setGeometry(w.geometry());
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scene->addWidget(&w);
view->setScene(scene);
view->show();
view->rotate(180);
//w.show();
return a.exec();
}
看起来有点故障,但你可以尝试一下。
此外,我认为正确的语法是 -platform linuxfb:fb=/dev/fb0:rotation=180
注意 =
而不是 :
编辑: 但这对我也没有什么影响。