Qt QPainter的使用方法

 更新时间:2024年03月07日 08:52:58   作者:qq_1410888563  
QPainter是Qt的一个绘图类,它的主要任务是在绘图设备上进行2D图形渲染,本文主要介绍了Qt QPainter的使用方法,具有一定的参考价值,感兴趣的可以了解一下

重点:

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

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

class Widget : public QWidget
{
    Q_OBJECT


protected:
    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()等等。

到此这篇关于Qt QPainter的使用方法的文章就介绍到这了,更多相关Qt QPainter内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++实现LeetCode(141.单链表中的环)

    C++实现LeetCode(141.单链表中的环)

    这篇文章主要介绍了C++实现LeetCode(141.单链表中的环),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C/C++中的mem函数和strcopy函数的区别和应用

    C/C++中的mem函数和strcopy函数的区别和应用

    strcpy和memcpy都是标准C库函数,strcpy提供了字符串的复制而memcpy提供了一般内存的复制。下面通过本文重点给大家介绍C/C++中的mem函数和strcopy函数的区别和应用,非常不错,感兴趣的朋友一起看下吧
    2016-08-08
  • C语言for循环嵌套for循环在实践题目中应用详解

    C语言for循环嵌套for循环在实践题目中应用详解

    初学C语言,常常遇到for循环中嵌套个for循环,初学者对于这种形式总是一知半解,这次我就整理了常见的for循环嵌套for循环的题目,我们一起争取一举拿下这类题。学废他们,以后再见到就不怕啦!每天都要学一点呀。加油,奋斗的我们
    2022-05-05
  • C语言SetConsoleCursorPosition函数使用方法

    C语言SetConsoleCursorPosition函数使用方法

    这篇文章介绍了C语言SetConsoleCursorPosition函数的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • C语言中while与do-while的介绍与注意事项

    C语言中while与do-while的介绍与注意事项

    对于C语言中的while与do-while,相信很多都再熟悉不过了,最近在工作中就用到了,所以想着总结一下,方便自己或者有需要的朋友们参考借鉴,文中通过示例代码介绍的很详细,感兴趣的朋友们下面来一起学习学习吧。
    2016-10-10
  • C语言详细讲解二分查找用法

    C语言详细讲解二分查找用法

    二分查找法,又叫做折半查找法,它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列
    2022-04-04
  • solaris操作系统做c应用程序开发步骤

    solaris操作系统做c应用程序开发步骤

    solaris操作系统做c应用程序开发步骤,大家参考使用吧
    2013-12-12
  • C/C++如何实现循环左移,循环右移

    C/C++如何实现循环左移,循环右移

    这篇文章主要介绍了C/C++如何实现循环左移,循环右移,具有很好的参考价值,希望对大家有所帮助。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Matlab实现二维散点主方向直方图的绘制详解

    Matlab实现二维散点主方向直方图的绘制详解

    这篇文章主要为大家详细介绍了如何利用Matlab实现二维散点主方向直方图的绘制,文中的示例代码讲解详细,对我们学习Matlab有一定帮助,需要的可以参考一下
    2022-09-09
  • C语言中break与continue的用法和区别详解

    C语言中break与continue的用法和区别详解

    当我们使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字,这篇文章主要给大家介绍了关于C语言中break与continue的用法和区别的相关资料,需要的朋友可以参考下
    2021-10-10

最新评论