我开发了一个简单的QML应用程序,并在目标设备上运行交叉编译(带有触摸屏的RPI)。
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
// Not helping
MouseArea {
anchors.fill: parent;
hoverEnabled: true
}
Button {
text: "quit";
onClicked: Qt.quit()
anchors.centerIn: parent;
width: 300
height: 250
}
}让我困惑的问题是,当我触摸应用程序中的任何位置时,底层桌面(RPI桌面)也会被触及。这意味着所有鼠标或触摸事件都被转发到后面的屏幕,即Raspbian。
这是我的代码样本。(这不是代码问题。我认为它应该与EGLFS或os中的其他东西相关)
如有任何提示将不胜感激。
更新:
我发现,只有在运行带有"-platform eglfs“参数的应用程序时,才会出现问题。
更新2: --我用RPI4进行了测试,似乎只有RPI3才存在问题
发布于 2022-02-15 12:43:15
eglfs平台用于在没有窗口系统的情况下运行。如果您在Raspbian桌面上,X服务器不是在运行吗?因此,您应该让Qt为窗口系统(xcb或wayland)选择合适的插件。您仍然可以使用QWindow::setVisibility()强制应用程序全屏显示。或者,如果您想部署一个嵌入式全屏幕应用程序并在带有eglfs的虚拟控制台上运行,请关闭窗口系统。那样会更轻。
https://stackoverflow.com/questions/71047860
复制相似问题