Raspberry Pi Qt5设置物理屏幕尺寸

时间:2013-08-29 18:18:43

标签: environment-variables raspberry-pi qt5 screen-size 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();
}

但仍会显示错误消息。

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

setFixedSize(1280, 720);

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

2 个答案:

答案 0 :(得分:1)

我只是提出类似

的内容
export QT_QPA_EGLFS_PHYSICAL_WIDTH=myWidth 
       QT_QPA_EGLFS_PHYSICAL_HEIGHT=myHeight   
       QT_QPA_EGLFS_DEPTH=myDepth

在我的.bashrc中摆脱那些错误。物理宽度和高度也以毫米为单位,而不是像素,屏幕深度是显示器的颜色深度(在我的情况下为18)。

答案 1 :(得分:1)

Raspberry Pi 3内核4.14.27-v7 +

Qt 5.10.1从Ubuntu 16.04主机交叉编译

我必须在我的Rpi上将以下内容添加到我的.profile

打开.profile

sudo nano ~/.profile

我在最后添加了这些行

# physical display properties
export QT_QPA_EGLFS_PHYSICAL_WIDTH=520
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=326

然后用(或重新启动)

重新加载bash配置文件
source .profile

以下链接包含所有EGLFS环境变量的说明:

http://doc.qt.io/qt-5/embedded-linux.html