1. void WgtText::paintEvent(QPaintEvent *event)
  1. {
  1. QPainter painter(this);
  1. QString m_string("abcdefghijklmnopqrstuvwxy");
  1. int font_size = 15;
  1. float x0 = font_size * m_string.count() * 0.5;
  1. int YSize = font_size * m_string.count() * 0.5;
  1. for(int i=0; i<m_string.count(); i++)
  1. {
  1.  
  1. // 按圆弧函数绘制
  1. painter.save();
  1. float tAlpha = i*3.14/m_string.count();
  1. float tx = YSize*cos(tAlpha) + YSize;
  1. float ty = YSize*sin(tAlpha);
  1. painter.translate(tx, ty); // 文字的位置
  1. painter.rotate(180*i/(float)(m_string.count())); // 将文字本身旋转
  1. painter.drawText(QPointF(-10.0, 10.0), QString("%1").arg(m_string[i]));
  1. painter.restore();
  1.  
  1. }
  1.  
  1. }

--------------------------------------------------------------------------------------

  1. void WgtText::paintEvent(QPaintEvent *event)
  1. {
  1.  
  1. QPainter painter(this);
  1. int font_size = 10;
  1. // 设置字符间距
  1. int text_space = 2;
  1. int wh = height();
  1. QFont font;
  1. font.setFamily("Microsoft YaHei");
  1. // 大小
  1. font.setPointSize(font_size);
  1. // 使用字体
  1. painter.setFont(font);
  1.  
  1. static QString m_string("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
  1.  
  1. for(int i=0; i<m_string.count(); i++)
  1. {
  1. // 按正弦函数绘制
  1. float tx = (font_size + text_space) * i;
  1. float ty = sin(tx);
  1. //压缩y坐标
  1. ty = wh/2 + ty*(wh/2*0.2);
  1. painter.drawText(QPointF(tx, ty), QString("%1").arg(m_string[i]));
  1. }
  1.  
  1. return QWidget::paintEvent(event);
  1.  
  1. }

Qt绘制文本二 弯曲排列和旋转效果 弧形路径 正弦函数路径的更多相关文章

  1. Qt绘制文本一

    QPainterPath,使用 drawText且设置字体,再使用painter.drawText方式 效果图: void WgtText::paintEvent(QPaintEvent *event ...

  2. Qt之图形(绘制文本)

    简述 前面我们讲解了Qt图形的基本绘制,其中包括: 绘制文本.直线.直线.矩形.弧线.椭圆.多边形.图片,以及其它一些高级用法,比如:渐变.转换等. 本节我们来详细讲解文字的绘制.主要通过QPaint ...

  3. 在WPF中自定义你的绘制(二)

    原文:在WPF中自定义你的绘制(二)   在WPF中自定义你的绘制(二)                                                                 ...

  4. Qt富文本编辑器QTextDocument

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt富文本编辑器QTextDocument     本文地址:https://www.tech ...

  5. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二) 代码工程地址: https:/ ...

  6. NLP(二十二)利用ALBERT实现文本二分类

      在文章NLP(二十)利用BERT实现文本二分类中,笔者介绍了如何使用BERT来实现文本二分类功能,以判别是否属于出访类事件为例子.但是呢,利用BERT在做模型预测的时候存在预测时间较长的问题.因此 ...

  7. html5 canvas 笔记三(绘制文本和图片)

    绘制文本 fillText(text, x, y [, maxWidth])   在指定的(x,y)位置填充指定的文本,绘制的最大宽度是可选的. strokeText(text, x, y [, ma ...

  8. FontMetrics ----- 绘制文本,获取文本高度

    Canvas 绘制文本时,使用FontMetrics对象,计算位置的坐标. public static class FontMetrics { /** * The maximum distance a ...

  9. Qt计算器开发(二):信号槽实现数学表达式合法性检查

    表达式的合法性 由于我们的计算器不是单步计算的,所以我们能够一次性输入一个长表达式.然而假设用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比方, ...

随机推荐

  1. unity 截图 压缩 处理

    /****************************************************** unity屏幕截图,并转换成Base64码* 作者: lyb* 日期:2017年7月25 ...

  2. Codeforces 776E The Holmes Children

    题目链接:http://codeforces.com/problemset/problem/776/E ${\because gcd(i,n-i)=1\Leftrightarrow gcd(i,n)= ...

  3. bzoj 2243: [SDOI2011]染色 线段树区间合并+树链剖分

    2243: [SDOI2011]染色 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 7925  Solved: 2975[Submit][Status ...

  4. C# txt文件的读取与写入

    C#创建记事本方法一://创建对象 FileStream stream = new FileStream(@"d:\aa.txt",FileMode.Create);//fileM ...

  5. C#6.0 语法

    属性表达式 属性值初始化 public string name {get;set;} = "张三"; 函数表达式 NULL检查运算符 var aa = Created?.Date; ...

  6. 力扣(LeetCode)67. 二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1" 输出: ...

  7. Flask-SQLAlchemy基本操作

    db.session.rollback() 回滚"""Role.query.get(2) get查询接收的参数为主键,如果不存在,返回空 >>> Use ...

  8. MYSQL常用函数(系统信息函数)

    DATABASE()   返回当前数据库名 BENCHMARK(count,expr)  将表达式expr重复运行count次 CONNECTION_ID()   返回当前客户的连接ID FOUND_ ...

  9. SQL中的where条件,在数据库中提取与应用浅析

    1. 问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语法解析.权限 ...

  10. 单细胞数据高级分析之构建成熟路径 | Identifying a maturation trajectory

    其实就是另一种形式的打分. 个人点评这种方法: 这篇文章发表在nature上,有点奇怪,个人感觉创新性和重要性还不够格,工具很多,但是本文基本都是自己开发的算法(毕竟satji就是搞统计出身的). 但 ...