我正在使用交叉编译在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);
我的问题是,如何正确设置这些变量,还是有另一种解决方案?
答案 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环境变量的说明: