QPainter绘制渐进色文本
参考资料:https://blog.csdn.net/what951006/article/details/52876513
效果图:

代码:
void WgtText::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QFont font;
font.setFamily("Microsoft YaHei");
// 大小
font.setPointSize(20);
// 斜体
font.setItalic(true);
// 设置字母大小写
//font.setCapitalization(QFont::SmallCaps);
// 设置字符间距
font.setLetterSpacing(QFont::AbsoluteSpacing, 20);
// 设置加粗
//font.setBold(true);
// 使用字体
painter.setFont(font);
QString m_Text1("AAAAAAAAAAAA");
QString m_Text2("BBBBBBBBBBBB");
QFontMetrics metrics = painter.fontMetrics();
int y=((height()-20)/2-metrics.height())/2+20;
int bottomwidth=width()-metrics.width(m_Text2);
QLinearGradient m_normalGradient;
/*
*frist part
*/
m_normalGradient.setStart(0, y);
m_normalGradient.setFinalStop(0, y+metrics.height());
m_normalGradient.setColorAt(0, QColor(255,0,0));
m_normalGradient.setColorAt(1, QColor(255,255,0));
painter.setPen(QPen(m_normalGradient,0));
painter.drawText(10, y,metrics.width(m_Text1),metrics.height(),Qt::AlignLeft, m_Text1);
/*
*second part
*/
m_normalGradient.setStart(0, y+height()/2);
m_normalGradient.setFinalStop(0, y+(height()-20)/2+metrics.height());
m_normalGradient.setColorAt(0, QColor(0,255,0));
m_normalGradient.setColorAt(1, QColor(0,0,255));
painter.setPen(QPen(m_normalGradient,0));
painter.drawText(bottomwidth-10, y+(height()-20)/2,metrics.width(m_Text2),metrics.height(),Qt::AlignLeft, m_Text2);
}
QPainter绘制渐进色文本的更多相关文章
- PyQt5利用QPainter绘制各种图形
这个例子我做了好几天: 1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化 2)网上的PyQt的例子根本运行不了 填了无数个坑,结合二者,终于能完成了一个关于绘图的东西.这个过程也掌握 ...
- 利用QPainter绘制各种图形(Shape, Pen 宽带,颜色,风格,Cap,Join,刷子)
利用QPainter绘制各种图形 Qt的二维图形引擎是基于QPainter类的.QPainter既可以绘制几何形状(点.线.矩形.椭圆.弧形.弦形.饼状图.多边形和贝塞尔曲线),也可以绘制像素映射.图 ...
- QPainter绘制遇到的小问题
1.Qt绘图基础 (1)绘图需画笔和画布: QPainter 相当于Qt中的一个画笔,绘制时需要一块画布, Qt中扮演画布角色的组件为QPaintDevice和他的各个子类,如: QWidget, Q ...
- 利用QPainter绘制散点图
[1]实例代码 (1)代码目录结构(备注:QtCreator默认步骤新建工程) (2)工程pro文件 QT += core gui greaterThan(QT_MAJOR_VERSION, ): Q ...
- QT 使用QPainter 绘制图形 和 世界变换 world transform
1. 绘制椭圆 饼状型 贝塞尔曲线 绘制图像重写方法 void paintEvent(QPaintEvent *event)即可. void Widget::paintEvent(QPaintEve ...
- QPainter绘制图片填充方式(正常大小、剪切大小、自适应大小、平铺)
Qt中QPainter提供了绘制图像的API,极大地方便了我们对图像的绘制. Qt中提供了QPixmap, QBitmap,QBitMapQImage,QPicture等图像绘图设备,它们的类关系如下 ...
- QPainter 绘制图像接口
阅读本文大概需要 3 分钟 我们在开发软件的过程中,绘制图像功能必不可少,使用 Qt 绘制图像时非常简单,只需要传递几个参数就可以实现功能,在 Qt 中绘制图像的 api有好几个 void drawI ...
- QPainter绘制特殊线条
参考资料: https://www.cnblogs.com/Jace-Lee/p/5946342.html 效果图: 代码: void WgtText::paintEvent(QPaintEvent ...
- Qt使用QPainter绘制矢量图并保存为svg文件
位图和矢量图: Bitmap: Usually a larger file size Cannot be enlarged into a higher resolution as the image ...
随机推荐
- sublime3 mac : Package Control There are no packages available for installation
如下问题: 查看控制台:点击 ctrl+`打开控制台 发现是因为http://packagecontrol.io/channel_v3.json 获取失败,手动下载channel_v3.json文件, ...
- Servlet快速入门
servlet是运行在服务端的java小程序,用来处理客户端请求,响应给浏览器的动态资源 servlet规范:包含3个技术点 1.servlet技术 2.filter技术 3.listener技术 s ...
- 使用lombok 找不到方法
在setting里面查找并设置就好了
- JCF
点我 补两个红黑树原理:https://www.cnblogs.com/yyxt/p/4983967.html https://www.cnblogs.com/skywang12345/p/324 ...
- 一个请求需要调用两个不同的数据库 添加DbContext
当请求进入application中的方法时 会开启一个工作单元 这里面调用不同的DbContext 会默认使用第一次调用的DbContext 需要手动开启工作单元来隔离两个不同的DbContex ...
- include
1. 自己写的文件都用:include "....." 2. 如果A类include了B,那么在主函数中,只用include A类,就可以使用B类了,但是此时不能再include ...
- ionic+微信js-sdk集成初步融合,在子路由页引入js操作dom节点
.controller('yaoheCtrl',['$scope',function ($scope) { $scope.$watch('$viewContentLoaded',function(ev ...
- 全栈性能测试修炼宝典--Jmeter实战(一)
性能测试方向职业发展 1.软件测试发展路线 我们可以暂且把软件测试职业路线分为3个方向,分别是业务路线.技术路线.管理路线:4个象限,分别为执行层.中层.中高层过渡.高层. (1)业务路线 常见业务路 ...
- Nginx自学笔记
Nginx相关 标签(空格分隔): nginx 享学 安装部署 通过源代码的方式安装 使用 ./sbin/nginx #启动 ./sbin/nginx -t #检查是否有错 ./sbin/nginx ...
- nodejs初识
提到nodejs总离不开npm,因此首先要学些和了解npm.而对于npm.nodejs的了解都来源于菜鸟教程. nodejs学习地址:http://www.runoob.com/nodejs/node ...