ich bin bald am Verzweifeln. Ich möchte eine Bitmap in ein Pixmap laden und dann darauf ein Rechteck zeichnen, dass mit einem Muster gefüllt sein soll.
Das ganze wird dann auf einem Dialog in einem Label dargestellt.
Wenn ich für meinen Brush-Style Qt::SolidPattern nehme, also ein gefülltes Rechteck, funktioniert es. Nehme ich dagegen Qt::DiagCrossPattern, bekomme ich bei Auruf von drawRect() eine unhandled exception.
Ich benutze Qt 4.1.0 und VC++ 6.0.
Code: Alles auswählen
bool paintMyRect()
{
// load image
QString strFilename = "12345.png";
if(!m_pixmap.load(strFilename))
return false;
// paint result
QPainter painter;
bool resultOK = painter.begin(&m_pixmap);
if (!resultOK)
return false;
QPen penFlapView;
penFlapView.setStyle(Qt::SolidLine);
penFlapView.setWidth(3);
penFlapView.setColor(Qt::green);
//QBrush brushFlapView(Qt::red, Qt::SolidPattern); funktioniert
QBrush brushFlapView(Qt::red, Qt::DiagCrossPattern); // crash bei drawRect()
painter.setPen(penFlapView);
painter.setBrush(brushFlapView);
painter.setRenderHint(QPainter::Antialiasing);
painter.drawRect(100, 100, 200, 200);
return painter.end();
}// end of paintMyRect()
Code: Alles auswählen