QT 5.7とC++で作業しています。 現時点では、私は自分のウィジェットをQPainterクラスで描画するのに慣れようとしています。 しかし私は解決できなかった問題に気づいた。 私はウィジェット国境でextactly境界線を描画しようとするが、私はそうする場合:QT 5.7 Qラインのアライメント
void MyWidget::paintEvent(QPaintEvent *event)
{
QPainter painter;
painter.begin(this);
painter.setBrush(Qt::cyan);
QBrush brush(Qt::black);
QPen pen(brush, 2);
painter.setPen(pen);
painter.drawRect(0, 0, size().width() - 1, size().height() - 1);
painter.end();
}
そして、誰かが私に2つを取り除かなければならないと言ってくる前に、-1式 私はこれを行い、ペンの幅を1に設定すると知っているはずです。
私はこのアーティファクトは、 "ラインaligment" によって引き起こされていると思います。 QTは、矩形によって定義された論理行の近くのピクセルに色合いを付けることを試みますが、実際は最終的にはすべてがピクセルでなければならないため、決定する必要があります。 私が正しければ、なぜset the line aligment of the pen like in GDI+への方法がないのですか? どうすればこの問題を解決できますか?