Q1. Menu 为什么要独有EventLoop?
Q2. 哪些事件会使Menu关闭?
答:
I. Menu内某个Action被选中
II. 鼠标在上一级Menu移动到其它Action上
III. 鼠标在非当前展开的Menu层级上发生Input事件
Q3. 怎样确定(III: 鼠标在非当前展开的Menu层级上发生Input事件)发生?
答:
[Action->Popup Menu]
将Action设置成Focusable=true, Menu以及其下所有child Menu、child Action都必须设置Focusable=false。由此, 可以关注Action是否发生了Focus Out事件。 如果发生则关闭Menu。
[Context Menu]
同理[Action->Popup Menu], 改为关注当前Widget的Focus Out。