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 ...
随机推荐
- 每日质量NPM包事件绑定_bindme(详解React的this)
一.bindme 官方定义: is a helper to bind a list of methods to an object reference 理解: 因为不推荐在render()里构建函数, ...
- P2016 战略游戏
传送门 思路: 前置知识——普通树D: ▲普通的树形 DP : 设 f [ i ][ 0 ] 表示这个点不取,则它的所有子节点都要取:f [ i ][ 1 ] 表示这个点取,则它的子节点取与不取对之前 ...
- P1948 [USACO08JAN]电话线Telephone Lines
传送门 思路: 二分+最短路径:可以将长度小于等于 mid 的边视为长度为 0 的边,大于 mid 的边视为长度为 1 的边,最后用 dijkstra 检查 d [ n ] 是否小于等于 k 即可. ...
- selenium 在电脑浏览器中用手机模式打开
import requests from selenium import webdriver from selenium.webdriver.common.action_chains import A ...
- [osg][opengl]透视投影的参数Perspective
gluPerspective这个函数指定了观察的视景体(frustum为锥台的意思,通常译为视景体)在世界坐标系中的具体大小,一般而言,其中的参数aspect应该与窗口的宽高比大小相同.比如说,asp ...
- 使用git命令行解决冲突
文章转载自:https://blog.csdn.net/sureSand/article/details/78765727 使用git和提交的代码有所冲突,用IDE自带的git工具功能多了反而不知道怎 ...
- QT json字符串生成和解析
1 QT json字符串生成和解析 1.1 QT Json解析流程 (1) 字符串转化为QJsonDocument QJsonParseError json_error; QJso ...
- PSFTP用法
PSFTP是PuTTY SFTP客户端,用于本地与服务器间安全传输文件(使用SSH连接). 1. 启动PSFTP 在Windows命令提示符中输入 set PATH=C:/PSFTP.exe所在路径; ...
- Linux中命令行终端切换工具screen
screen命令 本文转自:http://man.linuxde.net/screen Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命令 ...
- centos 安装 FLEXPART
师哥做了个课题,用FLEXPART分析大气伴飞轨迹,提前先安装这个软件吧.我使用的环境是centos7,看官慢慢看,结尾有彩蛋~ 准备工作,flexpart是用Fortran语言写的,以.90结尾的文 ...