environment-variables - 树莓派 Qt5 设置物理屏幕尺寸

标签 environment-variables raspberry-pi qt5 screen-size raspbian

我正在使用交叉编译在 raspbian 上的 raspberry pi 上开发一个 qt5 应用程序。
当我运行它时,我得到一个黑屏,试图显示一个 QFrame 弹出窗口。
我想它无法定位,因为我在开头有错误消息:

EGLFS: Unable to query physical screen size, defaulting to 100 dpi.

EGLFS: To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).

EGLFS: Unable to query screen depth, defaulting to 32.

EGLFS: To override, set 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);
我的问题是,如何正确设置这些变量,或者您有其他解决方案吗?

最佳答案

树莓派 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

关于environment-variables - 树莓派 Qt5 设置物理屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18518280/

相关文章:

python - Raspberry - 发送 CAN 消息

c++ - 编辑 QTableWidgetItem 时捕获 ESC 键

docker - 无法在 Docker 容器中获取 ASPNETCORE_ENVIRONMENT 变量

linux - 查看环境变量 PATH 的文件夹中是否包含命令

python - Flask 应用程序与 opencv 一起工作真的很慢

qt - 将 QMessageBox 移动到屏幕的右下角

c++ - 为什么我不能用 Qt5/C++ 解析 Cryptsy JSON API?

c# - 如何查看当前操作系统是win8还是blue

java - 无法访问 apache 模块源代码中系统定义的环境变量

java - 仅在启动时启动时绑定(bind)异常 [Raspbian]