QML中创建的弹框Popup窗口被动刷新
问题场景:
我在选中Item点击鼠标右键后会弹出Menu下拉框,然后判断当选择其中的一个菜单后,会动态的创建一个弹框Popup组件对象,用于显示变量曲线的绘制。
问题现象:
对于已经显示的弹框对象,当再次选择其它的Item并右键时,之前的所有弹框Popup都会被刷新一遍,并且之前的弹框位置也随之鼠标点击的位置发生移动。这是不能接受的。
问题原因:
在使用组件对象创建对象时:component.createObject(parent), 传入的参数parent是父对象Menu菜单。当鼠标右键点击Item元素时会弹出Menu菜单,此时Menu菜单会重新绘制,所以其子节点弹框对象也被重新绘制了,发生了刷新动作。
解决办法:
创建组件对象时传入主界面对象为其父节点,或者某个相对静止的对象为其父节点。