6

我正在使用交叉编译在我的树莓派上开发一个 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);

我的问题是,如何正确设置这些变量或者您有其他解决方案吗?

4

2 回答 2

2

树莓派 3 内核 4.14.27-v7+

从 Ubuntu 16.04 主机交叉编译的 Qt 5.10.1

我必须将以下内容添加到我的 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

于 2018-03-22T22:03:58.763 回答
1

我只是放了类似的东西

export QT_QPA_EGLFS_PHYSICAL_WIDTH=myWidth 
       QT_QPA_EGLFS_PHYSICAL_HEIGHT=myHeight   
       QT_QPA_EGLFS_DEPTH=myDepth

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

于 2013-08-30T05:33:27.143 回答