当你将addRect ...然后addLine ...添加到QGraphicsScene时,你会期望在rects上绘制线条,对吧?在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();
}
答案 0 :(得分:0)
来自:David Boddie trolltech.com&gt;
主题:Re:Re:QGraphicsScene addLine,在Mac上Qt 4.4.3中加载的addRect绘制顺序?
新闻组:gmane.comp.python.pyqt-pykde
日期:2009-06-09 14:41:06 GMT
On Bue Jun 9 10:41:37 BST 2009,denis写道:
bug:有些addLines也被Qt 4.4.3 + mac中的前一个addRects隐藏了, 在C和PyQt中有所不同
我不认为保证绘制对象的顺序 与它们的创建顺序相同。
这很不幸,因为这意味着绘图顺序是任意的。 我倾向于设置对象的Z值以确保它们被绘制在 订单我期待。
大卫