社区
Qt
帖子详情
QML中如何捕获某个组件MouseArea范围外的任意鼠标单击?
梦之领域
2017-09-14 03:22:34
问题:自己想实现一个自定义 ComboBox,具体的思路如下:
在 Rectangle 内点击时弹出一个系统字体列表框,在该 Rectangle 和弹出的系统字体列表框区域之外(含应用程序窗口之外的区域)点击时销毁字体列表框。怎么才能捕获这个区域之外的鼠标点击呢?望大家赐教。
...全文
1023
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();
}
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下面就是这些属性的详细说明。
QML
--概述
QML
(Qt Meta Language,Qt元语言)是一个用来描述应用程序界面的声明式脚本语言,自Qt 4.7引入。
QML
具有良好的易读性,它以可视化
组件
及其交互和相互关联的方式来描述界面,使
组件
能在动态行为
中
互相连接,并支持在一个用户界面上很方便的复用和定制
组件
。 Qt Quick是Qt为
QML
提供的一套类库,由
QML
标准类型和功能组成,包括可视化类型、交互类型、动画类型、模型和视图类型,粒子...
Qt
16,235
社区成员
26,649
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章