2011-01-16 21 views
0

私はQt 4.6.3を使用していますが、問題があります。Qt SetRenderHintsの問題

ui.graphicsView->setRenderHints(QPainter::Antialiasing,false); 

しかし、いくつかの線の色が変わります。私に何ができる?私を助けてください。

私は自分自身を表現できないと思います。私はたくさんの行があります。このコードを使用すると、同じ行の色が変わります(行の一番上よりも一番明るい)。私はこの問題を解決できません。

+0

あなたのビデオカードは画像にアンチエイリアスできますか? – suszterpatt

+0

あなたは開くことができますか?私がこのコードを書いていないとき、それはアンチエイリアスではありません。しかし、私はそれを書くときにいくつかの線の色が変化します。 – sally

答えて

3

QPainter ::アンチエイリアス、より良い品質のペイントを実現するには、falseが必要です。

あなたがペインタを使用しているときに必ず状態を保存して復元する必要があります。

void Line:: paint (QPainter * painter, const QStyleOptionGraphicsItem * option, 
QWidget * widget) 
{ 
painter-> save();// save 
painter-> setRenderHint (QPainter:: Antialiasing); 
painter-> setPen (mypen); 
painter-> drawLine (...); 
painter-> restore();// restore 
} 

あなたはペインタでの変更を行う際の方法は、保存()および復元を呼び出していない場合、それは(不安定になる可能性が)。幸運