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 @   北冥没有鱼  Views(621)  Comments(0Edit  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示