Raspberry Pi Qt5设置物理屏幕尺寸

use*_*296 6 environment-variables screen-size qt5 raspberry-pi raspbian

我正在使用交叉编译在raspiber上使用raspberry pi开发qt5应用程序.

当我运行它时,我得到一个黑屏,试图显示一个弹出窗口,这是一个QFrame.

我想它无法定位,因为我有错误信息到达开头:

EGLFS:无法查询物理屏幕大小,默认为100 dpi.

EGLFS:要覆盖,请设置QT_QPA_EGLFS_PHYSICAL_WIDTH和QT_QPA_EGLFS_PHYSICAL_HEIGHT(以毫米为单位).

EGLFS:无法查询屏幕深度,默认为32.

EGLFS:要覆盖,请设置QT_QPA_EGLFS_DEPTH.

当我禁用QFrame时,默认情况下应用程序以全屏方式启动,而我没有设置它.

我尝试用以下方法设置这些环境变量:

int main(int argc, char *argv[])
{
    QByteArray width = qgetenv("QT_QPA_EGLFS_PHYSICAL_WIDTH");
    width.setNum(1920);

    QByteArray height = qgetenv("QT_QPA_EGLFS_PHYSICAL_HEIGHT");
    height.setNum(1080);

    QApplication a(argc, argv);

    MainWindow w;
    w.show();
    w.launchGame();

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

但仍会显示错误消息.

主窗口是一个QWidget,我使用以下方法定义了他的大小:

setFixedSize(1280, 720);
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何正确设置这些变量还是你有另一种解决方案?

Set*_*own 1

我只是放了类似的东西

export QT_QPA_EGLFS_PHYSICAL_WIDTH=myWidth 
       QT_QPA_EGLFS_PHYSICAL_HEIGHT=myHeight   
       QT_QPA_EGLFS_DEPTH=myDepth
Run Code Online (Sandbox Code Playgroud)

在我的 .bashrc 中消除这些错误。此外,物理宽度和高度以毫米为单位而不是像素,屏幕深度是显示器的颜色深度(在我的例子中为 18)。