QT自定义button绘制

重载QPushButton的paintEvent(QPaintEvent *e)

void paintEvent(QPaintEvent *e)

{
  QPushButton::paintEvent(e);

  //设置画布

  QPainter painter(this);

  //设置原点,默认原点为左上角

  painter.setWindow(0,0,width(),height());

  //设置渲染效果,抗锯齿

  painter.setRenderHint(QPainter::Antialiasing,true)

  //设置画刷

  QBrush brush(QColor(0,0,0);    #设置填充颜色

  QBrush brush(Qt::QBrushStyle); #设置填充图案

  painter.setBrush(brush);

  //绘制画布,填充区域

  painter.drawRoundedRect(QRect(0,0,width(),height()),0,0);

  //设置QPen

  QPen pen(QColor(0,0,0)); #设置颜色

  pen.setWidth(1);     #设置粗细

  pen.setStyle(Qt::DashLine); #设置线条风格为虚线

  pen.setDashPattern(QVector<qreal>() << 1 << 2); #设置实线与虚线的间隔

  painter.setPen(pen);  #设置pen

  //绘制图形

  painter.drawLine(0,0,1,1);  #绘制直线(0,0)-(1,1)

    QPolygonF points;             #多边形按照放入的顺序进行连线

  painter.drawPolygon(points);  #绘制封闭多边形

}

posted @ 2022-01-07 18:06  北冥没有鱼  Views(608)  Comments(0Edit  收藏  举报