我正在尝试使用QBrush通过setBrush设置5个QGraphicsRectItem的Brush。但它不起作用。这种行为令人困惑,因为它在某些情况下有效。
代码包含我在Qt-Creator中创建的* .ui。我在其上添加了一个QGraphiocsView。
QGraphicsScene *scene_;
scene_ = new QGraphicsScene(ui->graphicsView);
ui->graphicsView->setScene(scene_);
scene_->setBackgroundBrush(Qt::red);
for (int i=0; i<5; i++)
{
QBrush tmpBrush;
tmpBrush.setColor( QColor(200-i*15, i*15, 50) );
QPen tmpPen;
tmpPen.setColor(Qt::blue); tmpPen.setWidth(2);
QGraphicsRectItem*tmpRect = scene_->addRect( 2, 25*i, 100, 20, tmpPen, tmpBrush );
tmpRect->setPen(tmpPen); tmpRect->setBrush(tmpBrush);
}
我在Ubuntu 16.04中使用QT 5.7进行编码。
答案 0 :(得分:2)
你的画笔没有风格:-)或者,或许更有帮助的是,你创建一个新的QBrush
...
QBrush tmpBrush;
调用documentation个状态
的默认构造函数构造一个带有Qt :: NoBrush样式的默认黑色画笔(即这个 刷子不会填充形状)。
所以,只需将其改为......
QBrush tmpBrush(Qt::SolidPattern);
你应该得到理想的结果。