2009-06-09 7 views
1

Lorsque vous ajoutez AddRect ... then addLine ... à un QGraphicsScene, vous vous attendez à ce que les lignes soient dessinées sur les retours, n'est-ce pas? Dans Qt 4.4.3, mac ppc 10.4.11, certaines lignes ne sont pas, dans le test ci-dessous. J'imagine que c'est une interaction Qt/mac lib/carte graphique (versionitis maladie) donc apprécierait quiconque peut dire "c'est propre dans ...".
Merci, acclamationsQt4 QGraphicsScene Mac ppc 10.4 bug de rendu, rects cacher les lignes plus tard?

// 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 
// [email protected] 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(); 
} 

Répondre

0

De: David Boddie trolltech.com>
Sujet: Re: Re: QGraphicsScene addline, addRect dessiner ordre brouillé dans Qt 4.4.3 sur Mac?
Groupes de discussion: gmane.comp.python.pyqt-PyKDE
Date: 2009-06-09 14:41:06 GMT

Le 9 Mar Juin 10:41:37 BST 2009, denis écrit:

bug: certains addLines sont cachés par addRects précédents dans Qt 4.4.3 + mac aussi, différemment en C et PyQt

Je ne pense pas que l'ordre dans lequel les objets sont dessinés est garanti d'être identique à l'ordre dans lequel ils sont créé.

Ceci est regrettable car cela signifie que l'ordre de dessin est arbitraire. J'ai tendance à définir la valeur Z des objets pour être sûr qu'ils sont dessinés dans l'ordre que j'attends.

David

Questions connexes