当前位置: 首页 > news >正文

Qt QPainter的使用方法

重点:

1.QPainter在QWidget窗口的paintEvent中使用。

2.QPainter通常涉及到设置画笔、设置画刷、绘图(QPen、QBrush、drawxx)三个流程。

class Widget : public QWidget
{Q_OBJECTprotected:void    paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;public:Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;
};oid Widget::paintEvent(QPaintEvent *event)
{QPainter    painter(this);  //创建QPainter对象painter.setRenderHint(QPainter::Antialiasing);painter.setRenderHint(QPainter::TextAntialiasing);int W=this->width();    //绘图区宽度int H=this->height();   //绘图区高度QRect   rect(W/4,H/4,W/2,H/2);  //中间区域矩形框//设置画笔QPen    pen;pen.setWidth(3);        //线宽pen.setColor(Qt::red);  //划线颜色pen.setStyle(Qt::SolidLine);    //线的样式,实线、虚线等pen.setCapStyle(Qt::FlatCap);   //线端点样式pen.setJoinStyle(Qt::BevelJoin);    //线的连接点样式painter.setPen(pen);//设置画刷QBrush  brush;brush.setColor(Qt::yellow); //画刷颜色brush.setStyle(Qt::SolidPattern); //画刷填充样式painter.setBrush(brush);//绘图painter.drawRect(rect);     //填充定义的渐变区域event->accept();
}

其中QPen设计三种方式:

 其中QBrush主要函数有:

 画刷的样式内容如下:

 其中材质(setTexture)的填充方法如下:

   //设置画刷QPixmap texturePixmap(":images/images/texture.jpg");QBrush  brush;brush.setStyle(Qt::TexturePattern);     //画刷填充样式brush.setTexture(texturePixmap);        //设置材质图片painter.setBrush(brush);

继承画刷的子类有三种,主要是渐变填充效果(具体设置看代码的构造使用方法)

 最后绘图 painter.drawRect(rect);   则包含多种绘制的方式有drawPoint(),drawLine(),drawArc()等等。

http://www.lryc.cn/news/312209.html

相关文章:

  • 低代码:数智化助力新农业发展
  • 3d模型怎么镜像?3d模型镜像的步骤---模大狮模型网
  • 笔记本hp6930p安装Android-x86补记
  • 为什么MySQL中多表联查效率低,连接查询实现的原理是什么?
  • 从下一代车规MCU厘清存储器的发展(2)
  • Redis(理论版)
  • 【NR 定位】3GPP NR Positioning 5G定位标准解读(四)
  • Docker容器化解决方案
  • Docker安装+基础命令
  • 构建高性能Linux Virtual Server(LVS)集群
  • Linux:线程的概念
  • 如何在jupyter notebook 中下载第三方库
  • Linux下du命令和df命令的使用
  • AIGC笔记--条件自回归Transformer的搭建
  • 数据结构->链表分类与oj(题),带你提升代码好感
  • unity-unity2d基础操作笔记(三)0.5.000
  • 【精华】AIGC启元2024
  • js对象解构语法
  • flowable使用taskService.addComment新增评论需要full_msg字段进行读取
  • java常用技术栈,java面试带答案
  • 刷题第11天
  • QML中动态增加表格数据
  • OBS插件开发(二)推流实时曲线
  • Linux编程3.3 进程-进程的终止
  • 排序(3)——直接选择排序
  • [LeetBook]【学习日记】数组内重组
  • 【Linux】磁盘情况、挂载,df -h无法看到的卷
  • AIOps实践中常见的挑战:故障根因与可观测性数据的割裂
  • python 远程代码第一次推送
  • C++开发基础之简单的计时器也有适配场景