本文主要参考qt5.9 c++开发指南

画刷的不同填充效果:

    QPainter   painter(this);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);//线的类型,实线、虚线等painter.setPen(pen);//设置画刷QPixmap texturePixmap(".//002.jpg");QBrush  brush;brush.setStyle(Qt::TexturePattern); //画刷填充样式brush.setTexture(texturePixmap); //设置材质图片painter.setBrush(brush);painter.drawRect(rect);


渐变填充:QLinearGradient,QRadialGradient和QConicalGradient

  • QLinearGradient:线性渐变。指定一个起点及其颜色,终点及其颜色,还可以指定中间的某个点的颜色,起点至终点之间的颜色会线性插值计算,得到线性渐变的填充颜色。
  • QRadialGradient:有简单辐射渐变和扩展辐射渐变两种方式。简单辐射渐变是在一个圆内的一个焦点和一个端点之间生成渐变颜色,扩展辐射渐变是在一个焦点圆和一个中心圆之间生成渐变色。
  • QConicalGradient:圆锥形渐变,围绕一个中心点逆时针生成渐变颜色。
    效果如下:
辐射渐变QPainter   painter(this);int W = this->width();int H = this->height();//径向渐变QRadialGradient  radialGrad(W / 2, H / 2, qMax(W / 8, H / 8), W / 2, H / 2);radialGrad.setColorAt(0, Qt::green);radialGrad.setColorAt(1, Qt::blue);radialGrad.setSpread(QGradient::ReflectSpread);painter.setBrush(radialGrad);
    //线性渐变 中心坐标,半径长度和焦点坐标QRadialGradient radialGradient(100, 100, 80, 100, 100);//插入颜色radialGradient.setColorAt(0, Qt::yellow);radialGradient.setColorAt(0.5, Qt::gray);//指定渐变区域以外的区域的扩散方式radialGradient.setSpread(QGradient::PadSpread);//使用渐变作为画刷QPainter painter(this);painter.setBrush(radialGradient);painter.drawRect(10, 20, 90, 40);//绘图painter.drawRect(this->rect()); //填充更大区域,会有延展效果

qt绘图事件(画刷的填充)相关推荐

  1. VC++使用画刷绘图 简单画刷 FillRect函数 位图画刷 透明画刷

    目录 使用画刷绘图 简单画刷 FillRect函数 位图画刷 透明画刷 接上:VC++ 利用MFC的CWindowDC类实现画线功能 在桌面窗口中画线 绘制彩色线条 CPen nPenStyle nW ...

  2. Qt绘图事件:QPainter、QPaintEngine和QPaintDevice

    一.绘图,刷新界面的方法 1.绘图事件 一般在绘图事件中绘图 1 void paintEvent(QPaintEvent *);//绘图事件在窗口重绘的时候(即状态改变)的时候调用 2 { 3 //1 ...

  3. 【QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)】

    [QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)] 1.说明 2.实验环境 3.参照学习链接 4.自己的学习与理解 5.学习与实践代码. (1)建立基础工程. (2)加入绘图事 ...

  4. 【Qt教程】3.4 - Qt5 QPainter绘图事件、绘图功能

    1. QPainter绘图事件 简介 Qt的绘图系统允许使用现同的API在屏幕和其他打印设备上进行绘制.整个绘图系统基于 QPainter.QPaintDevice.QPaintEngine 三个类. ...

  5. VS2019MFC进行无预览简单绘图:直线,画笔,画刷,矩形,椭圆

    1.MFC常用绘图函数 CreatePen 创建画笔:属性:线型.宽度.颜色 CreateSolidBrush 创建画刷,填充封闭图形 SetPixel 绘制像素点,返回RGB值 SetPixelV ...

  6. c++ qt获取电脑的内存_QT开发(十四)——QT绘图系统

    一.QT绘图原理 Qt4中的2D绘图系统称为Arthur绘图系统,可以使用相同的API在屏幕上和绘图设备上进行绘制,主要基于QPainter.QPainterDevice和 QPainterEngin ...

  7. CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷

    CSharp代码示例每日一讲,为刚刚学习编程的人准备,利用最简单的代码介绍CSharp编程知识! 画笔和画刷是图形应用中最常用的两种对象.笔用于绘制图形对象的轮廓,如线条和曲线;刷子是用来填充图形对象 ...

  8. MFC基本图形的绘制(一)设备环境类CDC、画笔和画刷

    Windows的GDI(设备图形接口),提供了绘图的基本工具,如:画点.线.多边形.位图以及文本输出等.MFC的设备环境类CDC封装了全部的绘图函数,使得绘制的图形即可以显示,又可以打印. 概述 Vi ...

  9. MFC 画线,画刷,文本

    CPaintDC dc(this);//只能在OnPaint函数中使用 CClientDC dc(this);//在哪里使用都可以 画直线 获得设备描述表->MoveTo -->LineT ...

最新文章

  1. java 的回调函数
  2. matlab将二值图像与原图重叠_[转载]图像处理matlab及图像融合图像镶嵌图像拼接...
  3. 【MFC】BitBlt详解
  4. Spring cloud(Finchley)微服务框架,sleuth整合zipkin链路追踪失效的问题
  5. CSS3技巧:利用css3径向渐变做一张优惠券(转)
  6. 学习方向、当前要做的事
  7. Autodesk云计算系列视频 --- 云计算与Civil 3D
  8. django-模板的母版与子版
  9. error C2065: “cout”: 未声明的标识符
  10. Windows 8.1 轻量接触接触方式部署(二)
  11. 【codevs1907】【方格取数3】二分图最大带权独立集
  12. 聊聊kafka consumer offset lag的监控
  13. 廖雪峰python3复习总结——day12-1
  14. 如何在JavaScript中用SpreadJS导入/导出Excel文件
  15. Ubuntu环境下远程调试Android手机设备
  16. matlab怎么新建文件运行不了,关于:Matlab中直接双击fig文件运行出错,而从.m文件运行却不会出错问题的一点心得...
  17. thinkphp 分页样式
  18. 解忧云SMS短信发送系统服务平台源码+解密完美版
  19. linux 下打包可执行程序
  20. QT The inferior stopped because it received a signal from the operating system.

热门文章

  1. 第七章:SpringCloud Feign对hystrix的支持
  2. QS世界大学排名_百度百科
  3. OSChina 周日乱弹 —— 在宅的路上越走越远。。。
  4. django虚拟环境搭建
  5. 【图论】求无向连通图的割点
  6. 查看Json的结构及内容:JsonViewerPackage
  7. train problem I (栈水题)
  8. using namespace cocos2d;
  9. java web 三层架构
  10. linux面试题与参考答案(转)