(4) Basic drawing usage of QPainter

The renderings are as follows: the
Insert picture description here
code is as follows:

void MainWindow::paintEvent(QPaintEvent *)
{
    
    
  QPainter painter(this);
  painter.setRenderHint(QPainter::Antialiasing);    // 设置反锯齿

  // 设置字体:微软雅黑\点大小13\斜体
  QFont font;
  font.setFamily("Microsoft YaHei");
  font.setPointSize(13);
  font.setItalic(true);
  painter.setFont(font);
  // 绘制文本
  painter.drawText(QPointF(40,40),"绘制的文本");

  painter.setPen(QColor(0,160,230));                // 设置画笔
  // 绘制直线
  painter.drawLine(QPointF(240,40),QPointF(340,40));

  painter.setPen(QPen(QColor(0,160,230),2));        // 设置画笔
  painter.setBrush(QColor(255,160,90));             // 设置画刷
  // 绘制矩形
  painter.drawRect(440,40,100,40);                  // 起始点宽高

  QRect rect(40.0,180.0,80.0,80.0);
  int startAngle=30*16;
  int spanAngle=140*16;                             // 跨越角度,度数为原来的1/16
  // 绘制弧线
  painter.drawArc(rect,startAngle,spanAngle);

  // 绘制椭圆
  painter.drawEllipse(QPointF(280,190),50,30);

  // 绘制圆
  painter.drawEllipse(QPointF(480,190),50,50);      // 起始点,宽、高

  QPointF points[3]={
    
    QPointF(40,310),QPointF(100,310),QPointF(50,400)};
  // 绘制多边形
  painter.drawPolygon(points,3);                    // 点数据,点数量

  QRect pixRect(240,310,100,100);                   // 绘图区域
  QPixmap pix(":/pixmap.jpg");
  // 绘制图片
  painter.drawPixmap(pixRect,pix);
}

Guess you like

Origin blog.csdn.net/qq_40329851/article/details/113816218