当前位置: 首页 > news >正文

QTextEdit / QScrollArea 带滚动条的窗口 截长图保存

QWidget::grab()默认只能截图当前显示区域的内容,截长图需要滚动拼接起来。

参考代码如下:

QPixmap TextEditContentToPicture(QTextEdit *pTextEdit) { QSize documentSize = pTextEdit->document()->size().toSize(); int iY = 0, iRegionY = 0; int iTextWidth = pTextEdit->width(), iTextHeight = pTextEdit->height(), iRegionHeight = iTextHeight; int iMaxHeight = documentSize.height(); if(iMaxHeight < iTextHeight) iMaxHeight = iTextHeight; QScrollBar *pScrollBar = pTextEdit->verticalScrollBar(); if(pScrollBar == NULL) return QPixmap(); pScrollBar->setValue(0); QPixmap pixmap(documentSize); while(true) { if((iY + iTextHeight) > iMaxHeight) { iRegionHeight = iMaxHeight - iY; iRegionY = iTextHeight - iRegionHeight; } pTextEdit->render(&pixmap, QPoint(0, iY), QRegion(0, iRegionY, iTextWidth, iRegionHeight)); iY += iTextHeight; if(iY >= iMaxHeight) break; pScrollBar->setValue(iY); } pScrollBar->setValue(0); return pixmap; }

以上代码只处理垂直滚动的情况,如果既有水平滚动条,也有垂直滚动条,那就多计算一个维度,然后拼接绘制。

另外如果窗口有边框的话,边框也会被截下来。我目前是将边框去掉以便于截图,如果有其他更好的处理方式,可以留言分享一下。

http://www.jsqmd.com/news/547854/

相关文章:

  • 从入门到落地:AI Agent全栈学习路线图,手把手带你从0到1打造AI智能体!
  • gitlab-cicd持续部署-保姆式基础教学
  • ROS2新手避坑指南:解决rviz2中gazebo点云数据不显示的5个关键步骤
  • 基于神经网络(NN)模型预测控制(MPC)算法,非线性机器人汽车系统、四旋翼无人机(附参考文献)
  • 突破限制:百度网盘直链解析工具实现全速下载的完整实战指南
  • STM32新手必看:如何用GPIO口检测按键输入(附LED控制实战代码)
  • 【图像处理-opencv下载地址 】
  • 科研小白福音:用LabVIEW和NI采集卡,5分钟搞定电压信号采集(附Python数据分析代码)
  • ERP-Table结构
  • Qwen-Turbo-BF16基础教程:BFloat16精度原理、VAE分块解码与显存优化详解
  • 基于RVC与YOLOv8的智能视频配音系统:音画同步实战
  • HarmonyOS图片上传实战:ArkTS封装媒体库+压缩工具全解析
  • 2026年市场优质的水处理源头厂家推荐分析,水处理工艺口碑推荐分析赋能企业生产效率提升与成本优化 - 品牌推荐师
  • 企业培训转化低?智能陪练系统打通能力成长闭环
  • KMS激活技术全解析:从原理到实践的系统化指南
  • 在Ubuntu上为RWKV7-1.5B-G1A配置JDK开发环境:Java API服务搭建
  • 2026年最新降AI率工具横评:双引擎技术和普通重写工具效果差多少?
  • 邮件营销平台部署挑战与解决方案:Billion Mail容器化实践指南
  • 安装claude code
  • CLIP-GmP-ViT-L-14图文匹配工具实操手册:结果置信度阈值设定与业务规则联动
  • NERD Commenter终极指南:掌握Vim代码注释的10个高级技巧
  • Pixel Dream Workshop 生成艺术与STM32的跨界:在嵌入式屏上展示动态画作
  • SeqGPT-560m轻量生成实战:短句处理高响应速度与低显存占用实测
  • 如何突破macOS制作Windows启动盘的技术壁垒?WinDiskWriter让跨系统部署效率提升3倍
  • 丹青识画系统SolidWorks工程图识别:辅助机械设计零件库构建
  • 终极指南:使用ESLint与Prettier提升particles.js代码质量
  • PyTorch多GPU分布式训练入门:在单台RTX4090D服务器上实践DataParallel与DistributedDataParallel
  • 告别复杂规则!用RexUniNLU一键清洗爬虫数据,10+NLP任务全自动搞定
  • DALL-E模型部署终极指南:快速掌握模型保存与加载最佳实践
  • Vitis自定义IP编译报错?手把手教你解决SD boot data初始化问题