Qt 屏幕旋转问题

2023-12-27 11:49:40

Qt4屏幕旋转(LinuxFB)

已验证!

在启动脚本中加:

#!/bin/bash
sync
export QWS_DISPLAY="LinuxFB:mmWidth220:0" 

# TODO:运行你的Qt程序

Qt 5屏幕旋转,方法1

注意该方法,本人未验证!

要在Qt 5.12中使用Linux Framebuffer (LinuxFB)进行屏幕旋转,你可以通过设置环境变量来实现。以下是具体的解决方案和相关代码:
在终端中,使用以下命令设置环境变量():

export QT_QPA_FB_ROTATION=90

这将将环境变量QT_QPA_FB_ROTATION设置为90度,表示屏幕旋转90度。
在你的Qt应用程序代码中,确保在创建QApplication对象之前设置环境变量。例如,在main函数的开头添加以下代码:

#include <QApplication>
#include <QScreen>

int main(int argc, char *argv[])
{
    // 设置环境变量
    qputenv("QT_QPA_FB_ROTATION", "90");

    QApplication app(argc, argv);

    // 其他应用程序代码

    return app.exec();
}

这将在应用程序启动时设置环境变量,确保屏幕以90度旋转。
请注意,这种方法仅适用于使用Linux Framebuffer作为Qt的平台插件的情况。如果你使用的是其他平台插件(例如EGLFS、XCB等),则需要使用相应的方法来进行屏幕旋转。

Qt 5屏幕旋转,方法2

注意该方法,本人未验证!

直接应用程序改:

#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsProxyWidget>
#include "./form.h"
int main(int argc, char *argv[])
{    
    QApplication a(argc, argv);
    Form *form = new Form; //项目主窗口
    QGraphicsScene *scene = new QGraphicsScene;    
    QGraphicsProxyWidget *w = scene->addWidget(form);  
     w->setRotation(90);    
     QGraphicsView *view = new QGraphicsView(scene);    view->resize(810, 610);    view->show();
    return a.exec();
}

在这里插入图片描述

文章来源:https://blog.csdn.net/p309654858/article/details/135236971
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。