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