0
QtでQpixmapの幅が5px、高さが4pxですが、幅が.08、高さが.08の四角形で塗りつぶしていますが、形成される矩形は等しくありません私が与えた次元。 私は同じ次元の別の黒と白の長方形を描きたいQPainterのdrawRect関数は、同じ大きさの長方形を与えていません。
QLabel *a=new QLabel();
QPixmap b(5,4);
a->setFixedSize(b.size());
QPainter painter(&b);
heightOfCheckeredBox=.08;
widthOfCheckeredBox=.08;
bool switchBetweenBlackAndWhiteBoxRowDirection=true;
int switchBetweenBlackAndWhiteBoxColumnDirection=0;
for(qreal i=0;i<4;i+=heightOfCheckeredBox)
{
for(qreal j=0;j<5;j+=widthOfCheckeredBox)
{
if(switchBetweenBlackAndWhiteBoxRowDirection)
{
painter.setPen(Qt::white);
painter.setBrush(Qt::white);
switchBetweenBlackAndWhiteBoxRowDirection=false;
}
else
{
painter.setPen(Qt::gray);
painter.setBrush(Qt::gray);
switchBetweenBlackAndWhiteBoxRowDirection=true;
}
QRectF rectangle(j,i,widthOfCheckeredBox,heightOfCheckeredBox);
painter.drawRect(rectangle);
}
switchBetweenBlackAndWhiteBoxColumnDirection++;
if(int(switchBetweenBlackAndWhiteBoxColumnDirection)%2==0)
switchBetweenBlackAndWhiteBoxRowDirection=true;
else
switchBetweenBlackAndWhiteBoxRowDirection=false;
}
a->setPixmap(b);
a->show();
それは、幅と高さのピクセルの100分の8ある四角形を描画するために何を意味するのか自問してみてください。根底にあるレンダリングアルゴリズムは何を期待していますか? –
全体(またはほぼ全体)のピクセルを使用できるスケールで描画し、既知のアルゴリズムで縮小します。 – phyatt
私はイメージを持っています私はそれがバックグラウンドで別のイメージを持っている必要がありますそれは私が白と黒のボックスで今異なるイメージのために作っている私のチェッカーされたイメージです私はそれが終わった後、ビューで –