dartsellungsfehler bei graphicsitems
Verfasst: 29. Dezember 2009 23:37
Ich habe Darstellungsfehler bei einem Zeichentest, den ich ausführe bevor ich eine komplexere Zeichenfunktion auf graphicsitems übertrage. aber ich weis leider nicht warum der fehler auftritt.
Standardmäßig wird immer Qt::NoBrush verwendet, nur falls ich einen anderen setze soll das rechteck gefüllt werden. leider kommt es zu artefakten wenn ich dann scrolle (siehe thumbs). der fehler tritt auch auf, wenn ich statt NoBrush einen anderen brush setze, es bilden sich immer weise zwischenräume beim scrollen.
nicht gescrollt:

gescrollt:

edit:
tritt anscheinend nur bei painterpath' auf
Standardmäßig wird immer Qt::NoBrush verwendet, nur falls ich einen anderen setze soll das rechteck gefüllt werden. leider kommt es zu artefakten wenn ich dann scrolle (siehe thumbs). der fehler tritt auch auf, wenn ich statt NoBrush einen anderen brush setze, es bilden sich immer weise zwischenräume beim scrollen.
Code: Alles auswählen
NucItem(int iPosX, int iPosY, int iWidth, int iHeight, QString sNuc, int iIndex = 0,
QBrush bBrush = QBrush(Qt::NoBrush) );Code: Alles auswählen
QGraphicsView view;
QGraphicsScene *scene = new QGraphicsScene;
for(int y = 0; y < 100; y++)
for(int x = 0; x < 100; x++) {
NucItem *item;
if(x%2 == 0)
item = new NucItem(x+x*16, y+y*16, 16, 16, "A", y*100+x);
else item = new NucItem(x+x*16, y+y*16, 16, 16, "B", y*100+x, QBrush(Qt::red) );
scene->addItem(item);
}
view.setScene(scene);
view.show();Code: Alles auswählen
void NucItem::paint(QPainter *pPainter, const QStyleOptionGraphicsItem *pOption, QWidget *pWidget) {
QRect rRect(m_iPosX, m_iPosY, m_iWidth, m_iHeight);
QPen pPen(Qt::black, 1);
pPainter->setBrush(m_bBrush);
pPainter->setPen(pPen);
m_ppPath.addRect(rRect);
// m_ppPath.addText(m_iPosX+m_iWidth/2, m_iPosY+m_iHeight/2, QFont(), m_sNucleotide);
pPainter->drawPath(m_ppPath);
pPainter->drawText(rRect, Qt::AlignCenter, m_sNucleotide);
}
gescrollt:

edit:
tritt anscheinend nur bei painterpath' auf