代码之家  ›  专栏  ›  技术社区  ›  denis

qgraphicscene mac ppc 10.4渲染错误,rects隐藏后面的行?

  •  1
  • denis  · 技术社区  · 15 年前

    当你加入…然后添加行…对于一个qgraphicscene,你会期望直线被画在矩形上,对吧?在qt 4.4.3,mac ppc 10.4.11中, 一些 在下面的测试用例中,行不是。我想这是一个qt/mac库/显卡交互 所以,如果能说“干净的……”,任何人都会感激的。
    谢谢,干杯

    // 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 回复  |  直到 15 年前
        1
  •  0
  •   denis    15 年前

    发件人:david boddie trolltech.com>
    主题:回复:回复:qgraphicscene addline,addrect draw order scrambled in qt 4.4.3 on mac?
    新闻组:gmane.comp.python.pyqt-pykde
    日期:2009-06-09 14:41:06 GMT

    2009年6月9日星期二10:41:37,丹尼斯写道:

    错误:qt 4.4.3+mac中的前一个addrects也隐藏了一些addline, C和Pyqt不同

    我认为画物体的顺序不能保证 与它们的创建顺序相同。

    这很不幸,因为这意味着绘图顺序是任意的。 我倾向于设置对象的z值,以确保它们在 我想是点菜。

    戴维