QML中MouseArea同时动态创建1个页面,导致程序崩溃。

LinuxVV 2017-11-02 05:57:06
登录页面。点击登录时,因为是触摸屏。Windows系统。所以如果用多个手指同时按下登录按键,会导致程序崩溃。用单个手指点击则没有问题。


Rectangle{
width : 800;
height:300;

MouseArea:{
anchors.fill: parent;
onClicked:{
var component = Qt.createComponent("dddd.qml");
if(component.status === Component.Ready)
{
component.createObject(parent); //注释掉这行就没问题了。但是不能生成第二个页面的对象了。
}
}
}
}
[/code]

请问哪位大神给帮忙看下,我该怎么解决这个问题。 是要处理MouseArea的多个点击呢? 还是把生成对象移动到外面去?
...全文
321 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LinuxVV 2017-12-20
  • 打赏
  • 举报
回复
引用 1 楼 yhgaven 的回复:
你是一次创建太多页面了吧,在Rectangle外面一层声明一个空的Item,然后做判断吧。 property Item commpentDlg: null; onClicked:{ if (!commpentDlg) { commpentDlg = Qt.createComponent("qrc:/dddd.qml").createObject(parent); } }
貌似不行啊。因为是同时触摸屏幕的,所以声明的变量会一直是空。但是程序一样会崩溃。
yhgaven 2017-12-03
  • 打赏
  • 举报
回复
你是一次创建太多页面了吧,在Rectangle外面一层声明一个空的Item,然后做判断吧。 property Item commpentDlg: null; onClicked:{ if (!commpentDlg) { commpentDlg = Qt.createComponent("qrc:/dddd.qml").createObject(parent); } }

16,173

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧