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

Rendering of lines using QGraphicsView

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P2: Important
    • Some future release
    • 4.5.0
    • GUI: Painting
    • None

    Description

      Rendering of simple lines using QGraphicsView is broken. The lines are almost vertical (just one pixel of horizontal shift): Line ( x1, y1, x1+1, y2) and with y2-y1 very large. The problem happens when using native engine and no AA. Running with "-graphicssystem raster" solves the issue.

      Test case (use the scrollbar down and up and watch the artifacts):

      #include <QtGui/QtGui>
      
      class GraphLine : public QGraphicsView
      {
      public:
        GraphLine() : QGraphicsView()
        {
            QGraphicsScene *scene = new QGraphicsScene(this);
            setScene(scene);
      
            QLineF fline1;
            QLineF fline2;
            QLineF fline3;
            QLineF fline4;
            QLineF fline5;
            QLineF fline6;
            QLineF fline7;
            QLineF fline8;
      
            float dy = -1000.0;
            float dx = 100.0;
      
            fline1.setLine (15.0, 10.0, 16.0, 20010.0);
            fline2.setLine (25.0, 20.0, 26.0, 20020.0);
            fline3.setLine (55.0, 50.0, 56.0, 20050.0);
            fline4.setLine (65.0, 60.0, 66.0, 20060.0);
      
            fline5.setLine (15.0+dx, 10.0+dy, 16.0+dx, 20010.0-dy);
            fline6.setLine (25.0+dx, 20.0+dy, 26.0+dx, 20020.0-dy);
            fline7.setLine (55.0+dx, 50.0+dy, 56.0+dx, 20050.0-dy);
            fline8.setLine (65.0+dx, 60.0+dy, 66.0+dx, 20060.0-dy);
      
            QGraphicsLineItem* line1 = new QGraphicsLineItem(fline1);
            QGraphicsLineItem* line2 = new QGraphicsLineItem(fline2);
            QGraphicsLineItem* line3 = new QGraphicsLineItem(fline3);
            QGraphicsLineItem* line4 = new QGraphicsLineItem(fline4);
      
            QGraphicsLineItem* line5 = new QGraphicsLineItem(fline5);
            QGraphicsLineItem* line6 = new QGraphicsLineItem(fline6);
            QGraphicsLineItem* line7 = new QGraphicsLineItem(fline7);
            QGraphicsLineItem* line8 = new QGraphicsLineItem(fline8);
      
            scene->addItem(line1);
            scene->addItem(line2);
            scene->addItem(line3);
            scene->addItem(line4);
      
            scene->addItem(line5);
            scene->addItem(line6);
            scene->addItem(line7);
            scene->addItem(line8);
      
            setMinimumSize(200, 400);
            setWindowTitle(tr("Lines"));
        }
      };
      
      int main(int argc, char *argv[])
      {
          QApplication app(argc, argv);
          GraphLine widget;
          widget.show();
          return app.exec();
      }
      

      Attachments

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

        Activity

          People

            rodal Samuel Rødal
            admin Administrator
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes