Rasppberry上的QML应用程序,鼠标事件被传递到Raspbian桌面



我开发了一个简单的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 Desktop的后屏幕。

这是我的示例代码。(这不是代码问题。我认为这应该与EGLFS或操作系统中的其他内容有关(

如有任何提示,我们将不胜感激。

更新:

我发现只有当我用"-平台eglfs";论点。

更新2:我用RPI4进行了测试,似乎问题只存在于RPI3 中

eglfs平台用于在没有窗口系统的情况下运行。如果你在Raspbian桌面上,X服务器不是在运行吗?因此,您应该让Qt为窗口系统(xcb或wayland(选择合适的插件。您仍然可以使用QWindow::setVisibility((强制应用程序全屏显示。或者,如果你想部署一个嵌入式全屏应用程序,并使用eglfs在虚拟控制台上运行,请关闭窗口系统。那样会更轻。

最新更新