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

该博客介绍了如何使用Qt框架来实现类似微信的高级截图功能,包括快捷键启动截图、选择任意大小矩形区域、拖拽调整截图区域、绘制矩形、椭圆、线条、添加文字和箭头等。用户还可以撤销绘制、设置画笔粗细和颜色,并将截图保存到本地。示例代码展示了关键的事件监听和截图处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述

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

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

效果图

操作效果图

在这里插入图片描述

在这里插入图片描述

截取结果显示在主窗口中

在这里插入图片描述


截取代码

// 监控键盘事件;
void CaptureProgram::keyPressEvent(QKeyEvent *event)
{
	// 监控Ctrl + Alt + Q键;
	if (event->key() == Qt::Key_Q  &&  event->modifiers() == (Qt::AltModifier | Qt::ControlModifier))
	{
		startCatureImage();
	}
}

// 按下 Ctrl + Alt + Q键,开始截图;
void CaptureProgram::startCatureImage()
{
	// 点击截图按钮开始截图;
	m_captureHelper = new CaptureScreen();
	connect(m_captureHelper, SIGNAL(signalCompleteCature(QPixmap)), this, SLOT(onCompleteCature(QPixmap)));
	m_captureHelper->showFullScreen();
}

// 显示在界面上;
void CaptureProgram::onCompleteCature(QPixmap captureImage)
{
	ui.label->setPixmap(captureImage);
	m_captureHelper->deleteLater();
	m_captureHelper = NULL;
}
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值