- 論壇徽章:
- 0
|
我曾經(jīng)寫(xiě)過(guò)一個(gè)qt程序,當(dāng)時(shí)用的是qt4.6,使用qt4.6時(shí)并未發(fā)現(xiàn)任何問(wèn)題,但換了qt4.8后,發(fā)現(xiàn)qt4.8同一個(gè)qwidget的paintevent下只能有一個(gè)qpainter生效,用其它的qpainter所做出來(lái)的圖都和最后一個(gè)修改的qpainter相同,就好像這幾個(gè)qpainter用的都是同一個(gè)實(shí)體,在修改完其中一個(gè)qpainter之后再修改其它的qpainter,qt會(huì)自動(dòng)先初始化這個(gè)實(shí)體,這令我感到很糾結(jié)。
比如- 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);
- }
復(fù)制代碼 執(zhí)行后畫(huà)出來(lái)的將會(huì)是一個(gè)藍(lán)色的矩形框,而不是黑色的,而且矩形內(nèi)部也是灰色的。本人暫是不想修改主要的算法,主要怕這樣會(huì)使程序變慢,而難以滿更高的要求。故特向大家求助,是否有比較好的解決方法。
現(xiàn)在,我的系統(tǒng)上的qt助手無(wú)法運(yùn)行,在等源里的這個(gè)軟件包修復(fù)了,查起來(lái)多有不便,如果感覺(jué)是小白問(wèn)題,也請(qǐng)大家多諒解。 |
|