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)
我的问题是,如何正确设置这些变量还是你有另一种解决方案?
我只是放了类似的东西
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)。