绘制的过程如下:

1     QFont font; 2     font.setPointSize(this->height() * 2 * mZoomRatio / 3); 3     font.setBold(true); 4     if(mDrawOutlined) 5     { 6         QFontMetrics metrics(font); 7         QPainterPath path; 8         QPen pen(QColor(0, 0, 0, 100)); 9         int penwidth = font.pointSize() * 0.05;10         if(penwidth > 6);11         {12             penwidth = 6;13         }14         pen.setWidth(penwidth);15         int len = metrics.width(mText);16         int w = width();17         int px = (len - w) / 2;18         if(px

29         painter.strokePath(path, pen);30         painter.drawPath(path);31         painter.fillPath(path, QBrush(mTextColor));32     //    painter.drawRect(rect());33     }34     else35     {36         painter.setFont(font);37         painter.setPen(mTextColor);38         painter.drawText(0, 0, this->width()-1, this->height()-1, mTextFlags, mText);39     }

代码中strokePath函数式绘制字体的轮廓, fillPath函数用于填充字体。

addText函数中(px, py)指的是绘画的起点位置,py的计算方法在上面已经给出,通过控制px可以实现左对齐、右对齐、居中等对齐方式。用qt助手查看该函数说明可以了解。

这种方法适合在不可编辑的文字区域绘制例如QLabel,QButton等,对于QTextEdit等可编辑的区域可以使用QSS来实现,实现的方法在Qt助手中已经给出了,在qt助手中搜索styleColor就可以找到。

。。。 其实qss的方法我现在还不会用

这里使用另外一种方法实现QTextEdit中字体轮廓的绘制方法

代码如下:ui->textEdit->setFontPointSize(50);

QTextCharFormat format;

format.setTextOutline (QPen (Qt::red, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); // Color and width of outline

ui->textEdit->mergeCurrentCharFormat(format);

qt linux字体,Qt字体轮廓的绘制相关推荐

  1. qt linux 程序设置字体,QT程序中显示中文字体解决办法

    最近一直在做移植qtopia4.4.3和QT4.7的工作.qtopia已经可以在龙芯开发板上正常运行.搭建QT4.7的环境,使用QT4.7编写小程序,发现不能显示中文.研究了一番,找到了如下的解决方法 ...

  2. qt linux webservice,Qt实现访问WebService

    之前也许是因为根本不用的原因吧,,,根本没有想过Qt访问WebService的方式.... 要解决这个问题,因为Qt现行版没有提供直接访问的类库...首先是一些必备知识, 我连的服务器是用VS2010 ...

  3. qt linux opensource ,QT opensource embedded linux 编…

    建立自己的编译链文件夹 mkdir linux-mick-omap 拷贝别的文件夹下,譬如linux-arm-g++中的qmake.conf qplatformdefs.h到linux-mick-om ...

  4. Linux下添加字体(QT可用)

      Linux下面的字体(特别是一些嵌入式设备)不像windows下那么丰富,不过也可以自己手动添加.主要就是.ttf文件的搬运工~下面就来说说如何在Linux下添加字体吧!   1.首先在windo ...

  5. Qt Creator使用自定义字体

    Qt Creator使用自定义字体 使用自定义字体 使用自定义字体 为了使UI在设备上预览时使用自定义字体,必须将字体导入项目文件夹.Qt Design Studio会将它们与您的UI一起部署到设备上 ...

  6. Pango+Qt 列举windows系统字体

    欢迎关注公众号可以查看更多完整文章 可以显示Windows上所安装的所有字体的名称. 使用Qt显示数量和名称. 需要依赖Pango.Cairo.glib三个库,获取三个库,获取可以参见我的其他博客. ...

  7. qt designer stylesheet 设置字体加粗无效

    估计是qt designer的bug,qt designer stylesheet 设置字体加粗无效. 解决办法是在右侧的属性窗口对字体进行加粗设置,注意需要将stylesheet里面对字体的加粗设置 ...

  8. linux提取ttf字体轮廓,提取Windows的TTF字体轮廓矢量数据

    Windows系统的TTF字体具有字体优美.可无级缩放等优点,最适合应用在CAD类图形处理等软件中.直接分析TTF字体的文件格式并读出每个字的轮廓矢量是相当困难的,我们可以借助API函数来方便地获得这 ...

  9. qt 对话框位置如何确定_在图片上加字,如何确定该用什么字体、字体的颜色和放置的位置?...

    这是一位读者在后台向我提出的问题.坦白讲,第一次看到这个问题的时候,我觉得这个读者太鸡贼了.为什么这么说呢? 因为这看似是一个问题,倒不如说是3个问题.不过,不得不说,这的确是一个很有价值的好问题. ...

最新文章

  1. C++之Boost使用
  2. android.os.NetworkOnMainThreadException异常
  3. 放肆地使用UIBezierPath和CAShapeLayer画各种图形
  4. classloader
  5. 【转】ABP源码分析四十二:ZERO的身份认证
  6. 程序员啊程序员...济南昊锐科技
  7. Pure Pursuit纯跟踪算法Python/Matlab算法实现
  8. 华为云FusionInsight MRS:千余节点滚动升级业务无中断
  9. 终于转了,写写人生学习规划
  10. 利用 Conda 尝鲜 Python 3.10 不一样的特性 快来试试
  11. java开发和android开发_浅谈Java开发和Android开发的不同
  12. 文言文编程可以编译成PHP吗,PSTK项目:文言文也能编程?大四学生发明文言文编程语言...
  13. Java毕设项目车辆调度管理系统计算机(附源码+系统+数据库+LW)
  14. java setmethod_java.util.zip.ZipEntry.setMethod(int method)方法示例
  15. [附源码]SSM计算机毕业设计st音乐网站论文JAVA
  16. 司普沃浅谈豆角种植技术与管理方案
  17. 图解数据在网络中的传输过程
  18. 吴军亲述编程生涯:不用低效率的算法做事情
  19. 广州启明星辰的面试经历
  20. mysql外键约束的作用_MySql外键约束作用

热门文章

  1. mysql scn_Oracle scn详解
  2. JavaScript中数据类型的转换与undefined及Null
  3. JMeter接口测试文档
  4. [Office 2010 易宝典]怎样在Windows Phone上记录笔记并与OneNote 2010同步
  5. css透明度属性简介
  6. python面向对象程序设计实验总结_python面向对象编程小结
  7. 手机闹钟软件测试用例,手机测试用例
  8. CNN FPGA加速器实现(小型)CNN FPGA加速器实现(小型)
  9. GJB151B CS106测试方法
  10. DC-DC直流升压模块电源12V升24V(5A)FP5207