免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3934 | 回复: 0
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(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助手无法运行,在等源里的这个软件包修复了,查起来多有不便,如果感觉是小白问题,也请大家多谅解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP