QWidget 截图出现问题

shy_wing 2017-11-29 02:41:31
因为需要做程序屏幕分析,我用时间器 QTimer 定时发送截屏时间间隔是 2s。 在on_timeout()的槽里面,我调用

QPixmap pixmap(this->m_widget_drawBorad->size());
this->m_widget_drawBorad->render(&pixmap);

把m_widget_drawBorad QWidget的内容图像截取。结果是发现运行一段时间后,会出现
Warning: [2017-11-29 12:51:34.361]QPainter::begin: Paint device returned engine == 0, type: 2 (:0, )
Warning: [2017-11-29 12:51:34.364]QWidget::render: Cannot render with an inactive painter (:0, )
这样的提示,最后程序会崩溃,请问这样的问题,需要怎么解决
...全文
429 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shy_wing 2017-12-06
引用 1 楼 wuqiuzhi 的回复:
我提供自己遇到的问题,希望做个参考: 我原来在QT工程中,使用一个库,对于一个界面进行绘制,但是由于QT对于QPainter等控件,一次只能有一个被调用,所以,我调用QPainter进行绘制的时候,有很大的几率会崩溃,后来调整了绘制的时机,崩溃几率下降了很多。最好的方法是在主程序里面调用,使其满足不同时调用的条件。 我对QT也不是很熟,不知道你的问题跟这个有没有关系。 希望对你解决问题有一定的参考。
我换了一种方式截屏,原先使用定时器,没三秒钟一次截屏,长时间运行会发生奔溃,现在修改会当截屏的图像出现变化的时候,发送一次截屏,避免这样的问题。再你的回答中,你说一次只能有一个被调用,我是在主线程中截屏的,只线程没有做截屏操作,也会出现并发吗?
  • 打赏
  • 举报
回复
张小飞WPS 2017-12-01
painter指针绘制之前save一下试试
  • 打赏
  • 举报
回复
wuqiuzhi 2017-12-01
我提供自己遇到的问题,希望做个参考: 我原来在QT工程中,使用一个库,对于一个界面进行绘制,但是由于QT对于QPainter等控件,一次只能有一个被调用,所以,我调用QPainter进行绘制的时候,有很大的几率会崩溃,后来调整了绘制的时机,崩溃几率下降了很多。最好的方法是在主程序里面调用,使其满足不同时调用的条件。 我对QT也不是很熟,不知道你的问题跟这个有没有关系。 希望对你解决问题有一定的参考。
  • 打赏
  • 举报
回复
相关推荐
发帖
Qt
加入

1.3w+

社区成员

Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
申请成为版主
帖子事件
创建了帖子
2017-11-29 02:41
社区公告
暂无公告