社区
Qt
帖子详情
QML中如何捕获某个组件MouseArea范围外的任意鼠标单击?
梦之领域
2017-09-14 03:22:34
问题:自己想实现一个自定义 ComboBox,具体的思路如下:
在 Rectangle 内点击时弹出一个系统字体列表框,在该 Rectangle 和弹出的系统字体列表框区域之外(含应用程序窗口之外的区域)点击时销毁字体列表框。怎么才能捕获这个区域之外的鼠标点击呢?望大家赐教。
...全文
1113
1
打赏
收藏
QML中如何捕获某个组件MouseArea范围外的任意鼠标单击?
问题:自己想实现一个自定义 ComboBox,具体的思路如下: 在 Rectangle 内点击时弹出一个系统字体列表框,在该 Rectangle 和弹出的系统字体列表框区域之外(含应用程序窗口之外的区域)点击时销毁字体列表框。怎么才能捕获这个区域之外的鼠标点击呢?望大家赐教。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
微风v5
2017-09-29
打赏
举报
回复
在整个外部窗体的mousePressEvent(QMouseEvent *event)事件中判断鼠标位置是否在你那个红框范围外,隐藏此弹窗
void XXXXX::mousePressEvent(QMouseEvent *event)
{
if(ui.wInfo->isVisible() == true)
{
QPoint m_dragPos = event->pos();
if((m_dragPos.x() < ui.wInfo->x())||
(m_dragPos.x() > (ui.wInfo->x() + ui.wInfo->width()))||
(m_dragPos.y() < ui.wInfo->y())||
(m_dragPos.y() > ui.wInfo->y() + ui.wInfo->height()))
{
ui.wInfo->setVisible(false);
}
}
event->accept();
}
Qt6
QML
Book/动态
QML
/动态加载
组件
Loading Components Dynamically 动态加载
组件
The easiest way to dynamically load different parts of
QML
is to use theLoaderelement. It serves as a placeholder to the item that is being loaded. The item to load is controlled through either thesourceproperty ...
Qt6
QML
Book/Quick入门/
组件
Components
组件
A component is a reusable element.
QML
provides different ways to create components. Currently, we will look only at the simplest form - a file-based component. A file-based component is created by placing a
QML
element in a file and giving
QML
- 信号和事件系统
应用程序和用户界面
组件
需要相互通信。例如,一个按钮需要知道用户是否点击了它。按钮可以改变颜色来表示其状态或执行某些逻辑。同样,应用程序需要知道用户是否点击了按钮。应用程序可能需要将此
单击
事件转发给其他应用程序。
QML
具有信号和处理程序机制,其
中
信号是事件信号通过信号处理程序进行响应。在发出信号时,调用对应的信号处理程序。在处理程序
中
放置诸如脚本或其他操作之类的逻辑可以让
组件
响应事件。信号可以通过signal关键字添加到自定义
QML
类型
中
。这个一般就是我们自己用封装控件的时候用到的。
QML
学习(四)
QML
中
属性的分类及属性的使用详细说明
QML
学习(四)
QML
中
属性的分类及属性的使用详细说明
【
QML
初学者文档】一问读懂
QML
基础开发(内附大量简单源码)
QML
是Qt的一大特色,拥有强大的UI制作能力。但是想要学好
QML
,还需要一些细节和技巧的掌握。本篇文章将为你提供完整的
QML
知识体系,让你成为Qt的UI魔法师!
Qt
16,829
社区成员
26,687
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章