Qt4 QGraphicsScene mac ppc 10.4 ошибка рендеринга, rects скрыть более поздние строки? - PullRequest
1 голос
/ 09 июня 2009

Когда вы добавляете Rect ... затем addLine ... в QGraphicsScene, вы ожидаете, что линии будут нарисованы поверх канав, верно? В Qt 4.4.3 mac ppc 10.4.11, некоторых строк нет, в тестовом примере ниже. Я предполагаю, что это взаимодействие с Qt / mac lib / видеокартой (болезнь версита), поэтому был бы признателен всем, кто может сказать: «В нем чисто ...».
Спасибо, ура

// QGraphicsScene mac rendering bug: some addLines are hidden by previous addRects
    // C: 150 line is hidden under most rects, others ok
    // pyqt: other lines are hidden
// qt-mac-opensource-src-4.4.3 PyQt-mac-gpl-4.4.4 macosx 10.4.11, ppc, GEForce2 mx
// denis-bz-gg@t-online.de 9jun

#include <cmath>
#include <QtGui>

int main( int argc, char* argv[] )
{
    qDebug() << "qVersion:" << qVersion();
    QApplication app( argc, argv );
    int Size = 10;  // changes what's hidden
    int x0 = -500, y0 = -500, x1 = 500, y1 = 500;
    QRectF scenerect( x0, y0, x1, y1 );
    QGraphicsScene* scene = new QGraphicsScene( scenerect );
    QGraphicsView* view = new QGraphicsView( scene );
    view->centerOn( 100, 100 );  // ?

    for( int j = x0/2;  j < x1/2;  j += Size ){
    for( int k = y0/2;  k < y1/2;  k += Size ){
        scene->addRect( j, k, Size-1, Size-1, Qt::NoPen, QBrush( "palegreen" ));
    }
    }
    for( int angle = 0;  angle < 180;  angle += 30 ){
        float c = cos( angle * M_PI / 180 ) * x1;
        float s = sin( angle * M_PI / 180 ) * y1;
        scene->addLine( -c, -s, c, s, QPen( "black" ));
    }

    view->show();
    return app.exec();
}

1 Ответ

0 голосов
/ 09 июня 2009

От: Дэвид Бодди trolltech.com>
Тема: Re: Re: QGraphicsScene addLine, порядок рисования addRect, зашифрованный в Qt 4.4.3 на mac?
Группы новостей: gmane.comp.python.pyqt-pykde
Дата: 2009-06-09 14:41:06 GMT

Во вторник, 9 июня 10:41:37 BST 2009, Денис написал:

ошибка: некоторые addLines скрыты предыдущими addRects в Qt 4.4.3 + mac тоже, по-разному в C и PyQt

Я не думаю, что порядок, в котором нарисованы объекты, гарантированно будет такой же, как порядок их создания.

Это прискорбно, потому что это означает, что порядок рисования является произвольным. Я склонен устанавливать значение Z объектов, чтобы быть уверенным, что они нарисованы в порядок я ожидаю.

David

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...