使用QGrahicsView繪圖
1. 繪製矩形
這裏面有一個問題一定要注意,在view實際顯示之前,返回的view大小爲默認大小,100 * 30,與設置的view的size不相符,所以需要再showEvent中得到正確的size,這裏的showEvent是view所在窗口的showEvent();
void MainWindow::showEvent(QShowEvent *event)
{
QGraphicsScene*scene = new QGraphicsScene();
QGraphicsRectItem * rectItem =new QGraphicsRectItem(QRect(0,0,100,100));
QGraphicsView * view = ui->graphicsView;
scene->setSceneRect(0,0,view->width(), view->height());
scene->addItem(rectItem);
view->setScene(scene);
this->show();
}
設置畫筆:
QPen pen = rectItem->pen();
pen.setColor(QColor(0, 255, 0)); //設置畫筆顏色
pen.setWidth(5); //設置畫筆寬度
rectItem->setPen(pen);
scene->addItem(rectItem);
view->setScene(scene);
2. 繪製圓形
QGraphicsEllipseItem * ellipseItem = new QGraphicsEllipseItem(2, 2, 4,4);
scene->addItem(ellipseItem);
view->setScene(scene);
this->show();
3. 繪製文字
QString text = QString::number(id, 10);
text.append(":").append("ok");
textItem = new QGraphicsTextItem(text);
textItem->setPos(0,0);
textItem->setDefaultTextColor(QColor(0, 255, 0));