如何使用 linux 帧缓冲器旋转 Qt5 应用程序



我有一个嵌入式Linux应用程序直接在linux帧缓冲上运行(没有x-Windows(。 我们现在必须将显示器物理旋转 180 度。 如何让我的Qt应用程序旋转,使其不会颠倒显示? 我看到了使用以下选项的参考:

 -platform linuxfb:fb=/dev/fb0:rotation:180 

但是,旋转选项似乎被忽略了。

在 Ubuntu 服务器 16.04.6 上使用 Qt 5.9.2

您可以在应用程序级别处理它。使用QML这很容易,但是使用QWidgets,我能想到的最好的方法是在QGraphicsScene上渲染Widget并像这样旋转它:

#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注意=而不是: 编辑:但这对我来说也没有区别。

相关内容

  • 没有找到相关文章