免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3484 | 回复: 0

qt4.8如何实现一个qwidget下用多个qpainter同时绘图 [复制链接]

论坛徽章:
0
发表于 2012-07-30 15:41 |显示全部楼层
我曾经写过一个qt程序,当时用的是qt4.6,使用qt4.6时并未发现任何问题,但换了qt4.8后,发现qt4.8同一个qwidget的paintevent下只能有一个qpainter生效,用其它的qpainter所做出来的图都和最后一个修改的qpainter相同,就好像这几个qpainter用的都是同一个实体,在修改完其中一个qpainter之后再修改其它的qpainter,qt会自动先初始化这个实体,这令我感到很纠结。
比如
  1. void mypainttestclass::paintEvent(QPaintEvent* event)
  2. {
  3.     QPainter mypaintertest1(this);
  4.     QPainter mypaintertest2(this);
  5.     mypaintertest1.setRenderHint(QPainter::NonCosmeticDefaultPen,true);
  6.     mypaintertest1.setPen(QPen(QBrush(Qt::black), 1, Qt::SolidLine));
  7.     mypaintertest1.setBrush(QBrush(Qt::white, Qt::SolidPattern));
  8.     mypaintertest2.setRenderHint(QPainter::NonCosmeticDefaultPen,true);
  9.     mypaintertest2.setPen(QPen(QBrush(Qt::blue), 1, Qt::SolidLine));
  10.     mypaintertest1.drawRect(10,10,50,50);
  11. }
复制代码
执行后画出来的将会是一个蓝色的矩形框,而不是黑色的,而且矩形内部也是灰色的。本人暂是不想修改主要的算法,主要怕这样会使程序变慢,而难以满更高的要求。故特向大家求助,是否有比较好的解决方法。
现在,我的系统上的qt助手无法运行,在等源里的这个软件包修复了,查起来多有不便,如果感觉是小白问题,也请大家多谅解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP