Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-20199

REGRESSION: QPainter::drawLine() with QPen::FlatCap pen is off-by-one

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 4.8.0
    • 4.8.0
    • GUI: Painting
    • None
    • 49409f612c47f30434aa809e4d2c963f1a6bb88a

    Description

      Run the following application with Qt 4.7.x and then Qt 4.8:

      #include <QtGui>
      
      class MyWidget: public QWidget
      {
      public:
          MyWidget(QWidget *parent = 0) : QWidget(parent) {}
      
          void paintEvent(QPaintEvent *)
          {
              QPainter p(this);
      
              QPen pen(Qt::black);
              pen.setCapStyle(Qt::FlatCap);
              p.setPen(pen);
      
              int y = rect().center().y();
              p.drawLine(QPointF(0, y), QPointF(width(), y));
          }
      };
      
      int main(int argc, char **argv)
      {
          QApplication app(argc, argv);
      
          MyWidget w;
          w.resize(100, 100);
          w.show();
      
          return app.exec();
      }
      

      The pixel at 0, y will not be covered with Qt 4.8. This breaks underlines in text, which uses flat caps.

      See screenshot for comparison.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              laknoll Lars Knoll
              esabraha Eskil Abrahamsen Blomfeldt
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes