社区
Qt
帖子详情
QML中如何捕获某个组件MouseArea范围外的任意鼠标单击?
梦之领域
2017-09-14 03:22:34
问题:自己想实现一个自定义 ComboBox,具体的思路如下:
在 Rectangle 内点击时弹出一个系统字体列表框,在该 Rectangle 和弹出的系统字体列表框区域之外(含应用程序窗口之外的区域)点击时销毁字体列表框。怎么才能捕获这个区域之外的鼠标点击呢?望大家赐教。
...全文
1022
1
打赏
收藏
QML中如何捕获某个组件MouseArea范围外的任意鼠标单击?
问题:自己想实现一个自定义 ComboBox,具体的思路如下: 在 Rectangle 内点击时弹出一个系统字体列表框,在该 Rectangle 和弹出的系统字体列表框区域之外(含应用程序窗口之外的区域)点击时销毁字体列表框。怎么才能捕获这个区域之外的鼠标点击呢?望大家赐教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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();
}
QT
QML
应用程序性能优化实战视频课程
课程讲解形式有什么特点? 基于工程实践的讲解模式(实际敲代码的讲解形式,直观了解QT
QML
应用程序性能优化实战技术) 基于实用考量的技术选题( 选取QT软件工程师
QML
编程过程
中
常见的性能难题的优化技术) 通过这个课程能够学到什么?学习QT
QML
应用程序性能优化实战技术。 QT
QML
应用程序
中
QML
源码保护实战QT
QML
应用程序
中
QML
组件
异步加载实战QT
QML
应用程序
中
QML
异步任务实战QT
QML
应用程序
中
QML
性能可视化实战QT
QML
应用程序
中
QML
界面控件优化实战QT
QML
应用程序
中
QML
图片优化实战QT
QML
应用程序
中
JavaScript脚本优化实战
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
object-type属性类型集合如下:idpropertysignal下面就是这些属性的详细说明。
Qt
16,230
社区成员
26,629
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章