之前做过一个QT的绘图软件,就像Photoshop一样,可以创建很多画布。但一直未能实现像Photoshop里一样双击中间空白区域(无画布图片打开时中间空白区域)就弹出选择文件的对话框的功能。
今天百度了一遭,终于找到了方法,很简单,首先在MainWindow的构造函数里增加一个语句,安装mdiArea控件的事件筛选(用过QT的都知道,拖拽的空间,其名称可在ui变量中找到):

ui->mdiArea->installEventFilter(this);

然后在MainWindow里重载:

protected:bool eventFilter (QObject *object, QEvent *event);

实现它:

bool MainWindow::eventFilter(QObject *object, QEvent *event)
{if (object == ui->mdiArea) {if (event->type() == QEvent::MouseButtonDblClick) {on_action_open_triggered();return true;}}return false;
}

监听到的事件如果属于mdiArea控件,且事件类型为鼠标双击,那么调用MainWindow的槽函数on_action_open_triggered即可,这个槽函数本来就是菜单中打开命令的槽函数。

QT中双击mdiArea区域打开文件(监听双击事件)相关推荐

  1. 监听滚动事件 实现动态锚点

    前几天做项目的时候,需要实现一个动态锚点的效果 如果是传统项目,这个效果就非常简单.但是放到 Vue 中,就有两大难题: 1. 在没有 jQuery 的 animate() 方法的情况下,如何实现平滑 ...

  2. qt中制作添加 .ts 翻译文件

    qt中制作添加 .ts 翻译文件 QT 中可以用其自身的工具对界面语言进行翻译,以实现支持语言的效果,这对于开发用户跨越语言区域的工具来说是一个特别实用的功能. 下面介绍怎么制作和使用qt的翻译文件: ...

  3. Qt中为工程添加资源文件、给按钮添加图片

    Qt中为工程添加资源文件.给按钮添加图片 1.使用QIcon类.代码如下: QIcon icon;icon.addFile(tr("res/icon/wall.png"));ui- ...

  4. Linux中如何用命令打开文件夹

    Linux中如何用命令打开文件夹 文章目录: 一.点击Linux桌面文件图标打不开 二.解决方式 三.杀死所有nautilus相关进程 你是否遇到过Linux桌面文件图标打不开,我就遇到过,此时我的眼 ...

  5. 如何在vim中交换两个打开文件(在拆分中)的位置?

    本文翻译自:How can I swap positions of two open files (in splits) in vim? Assume I've got some arbitrary ...

  6. python文件的打开模式有几种_以下选项中,不是Python打开文件模式的是( )_学小易找答案...

    [单选题]下面代码的输出结果是( ) x=12.34+0j print(type(x)) [单选题]在本实验中为什么不使用草酸钠,而使用草酸来制备草酸亚铁? [单选题]减压抽滤时,下述操作不正确的是 ...

  7. 计算机无法转换文件,电脑中excel转换器无法打开文件的解决方法

    很多朋友在日常工作中都会接触到excel文件,而他们在操作时也会遇到一些问题.比如,一位朋友反馈电脑中excel转换器无法打开文件,这是怎么回事嗯?我们该如何解决呢?接下来,就随小编一起看看具体步骤吧 ...

  8. Linux终端文件夹管理员,如何在Ubuntu 18.04中以管理员权限打开文件和文件夹

    本文向你介绍在Ubuntu 18.04中以管理员权限打开文件和文件夹. 与 Windows 中的资源管理器一样,在 Ubuntu 系统的 Nautilus 文件管理器中,您也可以查看到系统中的所有文件 ...

  9. js如何监听元素事件是否被移除_JavaScript 监听元素是否进入/移出可视区域

    JavaScript 监听元素是否进入/移出可视区域 常规操作 防抖节流 IntersectionObserver 兼容的代码 常规操作 通常的做法是,监听srcoll事件,根据元素的offset来判 ...

  10. Java 实现日志文件监听并读取相关数据

    Java 实现日志文件监听并读取相关数据 项目需求 由于所在数据中台项目组需要实现监听文件夹或者日志文件并读取对应格式的脏数据的需求,以便在文件.文件夹发生变化时进行相应的业务流程:所以在这里记录下相 ...

最新文章

  1. Docker 入门终极指南:边学边用
  2. Spring Boot MongoDB 入门
  3. 通过反射获取带参构造方法并使用
  4. 自己动手写CPU(2)流水线数据相关问题
  5. 变量在内存中的值[c][code]
  6. Identifiers in Java(Java标识符)
  7. 前端学习(2241):react打卡倒计时十五天之react出现背景
  8. [SimplePlayer] 2. 在屏幕上显示视频图像
  9. 【HDU - 1527】【POJ - 1067】取石子游戏 (威佐夫博弈)
  10. 农村女人与城市女人的差别
  11. 计算机数值方法第三版答案百度云,数值计算方法课后习题答案(李庆扬等)..doc...
  12. 新建UE4 c++类
  13. windows下ghostscript (gs)安装,环境变量设置,是否安装成功
  14. face_recognition模块方法集合
  15. 最新出炉的2018中国十大IT教育培训排行榜
  16. 如何在unity使用数据库
  17. leetcode 1419 数青蛙
  18. taobao.item.update.listing( 一口价商品上架 )
  19. c语言写程序if else,if else用法详解,C语言if else用法完全攻略
  20. 美团大众点评合并:背后技术力量的对比回顾

热门文章

  1. 西安电子科技大学研究生计算机专业怎么样,西安电子科技大学计算机在职研究生怎么样?...
  2. keil软件是干嘛的?keil软件怎么用?
  3. 现在能否办理5G卡?联通:尚未对公众客户开放办理
  4. 数学家是如何做量化交易的
  5. 理解Creating network “projectName_default” with the default driver
  6. esp32 camera_ESP32操作L298N以及示例程序说明
  7. 使用官方APi获取Youtube视频资源
  8. python 输入框查询_前端实现输入框input输入时,调用后台查询。
  9. 2022年ICASSP说话人日志(Speaker Diarization)方向论文泛读总结
  10. 时钟周期、机器周期、指令周期的概念及三者之间的关系;定时器及计数器