叠加控件的dragEnterEvent函数触发问题
qt吧
全部回复
仅看楼主
level 1
sqhlight 楼主
widget上有label1控件和label2控件,通过drag实现拖曳label1控件,当拖到label2上时有条件的触发某事件,拖曳在widget上也有条件的触发其他事件,比如移动label1。
label2和widget都setacceptdrops(true)。问题是进入label2时触发了label2的dragenterevent事件,也同时触发了widget的dragenterevent事件,当label2 ignore,wigdet accept时,导致鼠标显示为accept,请问大神,如何在进入label2时屏蔽widget的dragenterevent事件呢?
2024年01月12日 04点01分 1
level 6
对于鼠标事件而言,如果不想透传给父窗口,就需要在对应事件里accept掉事件,所以你需要在label2的dragEnterEvent里accept事件。
而对于拖拽操作,这会影响鼠标状态,QDragEnterEvent和QDragMoveEvent继承自QDropEvent,可以通过setDropAction修改当前拖拽的行为,支持设置复制、移动、链接等,所以需要设置为Qt::IgnoreAction。除了Qt::IgnoreAction,其他值会鼠标抬起时传递给dropEvent
2024年01月12日 07点01分 2
了解了,非常感谢
2024年01月12日 22点01分
1