Qt实现微信截图功能(一)

打印 上一主题 下一主题

主题 555|帖子 555|积分 1665

简述


在之前的文章中有带大家讲解过部分截图功能,有兴趣的小伙伴可以点击阅读上述文章,今天给大家带来的是模仿微信截图做的小功能,如下:

  • 通过快捷键开始截图
  • 可实现屏幕内任意大小的矩形区域进行截取
  • 选取完区域可通过矩形区域的四角顶点以及四边中心点进行拖拽修改截取区域
  • 截取区域内绘制矩形框
  • 截取区域内绘制椭圆框
  • 截取区域内可自由绘制线条
  • 截取区域内添加文字
  • 截取区域内添加箭头
  • 撤销上次的绘制
  • 所有绘制可设置画笔的粗细(模仿微信提供小、中、大)
  • 所有绘制可设置画笔的颜色(目前提供五种颜色,可自定义添加)
  • 可将当前截取结果保存至本地
效果图

操作效果图



截取结果显示在主窗口中



截取代码

  1. // 监控键盘事件;
  2. void CaptureProgram::keyPressEvent(QKeyEvent *event)
  3. {
  4.         // 监控Ctrl + Alt + Q键;
  5.         if (event->key() == Qt::Key_Q  &&  event->modifiers() == (Qt::AltModifier | Qt::ControlModifier))
  6.         {
  7.                 startCatureImage();
  8.         }
  9. }
  10. // 按下 Ctrl + Alt + Q键,开始截图;
  11. void CaptureProgram::startCatureImage()
  12. {
  13.         // 点击截图按钮开始截图;
  14.         m_captureHelper = new CaptureScreen();
  15.         connect(m_captureHelper, SIGNAL(signalCompleteCature(QPixmap)), this, SLOT(onCompleteCature(QPixmap)));
  16.         m_captureHelper->showFullScreen();
  17. }
  18. // 显示在界面上;
  19. void CaptureProgram::onCompleteCature(QPixmap captureImage)
  20. {
  21.         ui.label->setPixmap(captureImage);
  22.         m_captureHelper->deleteLater();
  23.         m_captureHelper = NULL;
  24. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

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

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表