我有这个主窗口:
ApplicationWindow {
id : mainWindow
width: 640
height: 480
visible: true
Button{
text: "go back to form 1"
onClicked: {
form2.visible = true;
}
}
SecondForm{
id: form2
}
}
Run Code Online (Sandbox Code Playgroud)
第二个窗口是:
Window{
id: main
width: 640
height: 480
x: 0
y: 0
visible: false;
Button{
text: "go back to form 1"
onClicked: {
main.visible = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
桌面版本是好的,但在Android运行应用程序时,它的行为很奇怪!当我单击mainWindow中的按钮时会发生此错误:W/Qt ( 8903): (null):0 ((null)): QEGLPlatformContext::swapBuffers(): eglError: 12301, this: 0x6b46e7c0虽然似乎调用了第二个窗体并且主窗口变为非活动状态.但第二个窗口不可见.虽然我看不到内部的按钮和按钮,当我触摸按钮预期位于的区域时,显然它可以工作,第二个窗口消失,然后第一个窗口再次激活.当我尝试通过单击android后退按钮返回mainWindow时,它会返回到mainWindow并发出此警告:W/Qt ( 8903): (null):0 ((null)): Can't find surface …
问题表明我知道我们无法覆盖Home键事件但是如果你看看android 2.2的模拟器,你会看到一个应用程序Car Home它已经覆盖了大多数键,如Home,end call.
现在,关键是他们是如何做到的?我试图窥视应用程序的源代码,但令我惊讶的是它不可用或我无法找到它,但我不认为以后是这种情况.