找回密码
 立即注册
收起左侧

QML中如何捕获某个组件MouseArea范围外的任意鼠标单击?

3
回复
9121
查看
[复制链接]
累计签到:22 天
连续签到:1 天
来源: 2017-9-14 15:37:26 显示全部楼层 |阅读模式
1Qter豆
问题:自己想实现一个自定义 ComboBox,具体的思路如下:
在 Rectangle 内点击时弹出一个系统字体列表框,在该 Rectangle 和弹出的系统字体列表框区域之外(含应用程序窗口之外的区域)点击时销毁字体列表框。怎么才能捕获这个区域之外的鼠标点击呢?望大家赐教。
更多分享到:







回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2017-9-14 20:34:58 显示全部楼层
存在两个鼠标区域,在最底层的 Rectangle 里面写上ComboBox 下拉组件的隐藏或者销毁,在ComboBox鼠标区域触发下路组件的显示或者生成,这是一个解决办法!
回复

使用道具 举报

累计签到:22 天
连续签到:1 天
2017-9-15 09:08:40 显示全部楼层
Since 发表于 2017-9-14 20:34
存在两个鼠标区域,在最底层的 Rectangle 里面写上ComboBox 下拉组件的隐藏或者销毁,在ComboBox鼠标区域触 ...

你的意思是将 MouseArea 作为最底层 Rectangle 的子控件?问题是这样捕获不到这个 Rectangle 区域之外的鼠标单击

点评

不是 这样玩 Rectangle { MouseArea{ anchors.fill:parent onClicked:{ // 隐藏 控件 } } Rectangle { MouseArea{ anchors.fill:parent onClicked  详情 回复 发表于 2017-9-18 08:47
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2017-9-18 08:47:06 显示全部楼层
wsfxzxb 发表于 2017-9-15 09:08
你的意思是将 MouseArea 作为最底层 Rectangle 的子控件?问题是这样捕获不到这个 Rectangle 区域之外的 ...

不是 这样玩
Rectangle {
    MouseArea{
      anchors.fill:parent
      onClicked:{
            //  隐藏 控件
      }
   }

   Rectangle {
       MouseArea{
      anchors.fill:parent
      onClicked:{
            //  显示 控件
      }
   }
   }

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了