Qt下使用自定义字体
2013-03-02 12:22
274 查看
首先看下QFontDatabase类的说明:
也就是说QFont使用的是系统字体,而不能是自定义字体!
所以为了使用自定义字体,必须将自定义字体安装(copy)到系统字体文件夹中(如C:\windows\fonts).
注意:字体文件的名称必须是字体的名称。因为QFontDatabase::families获取的是字体的名称,而不是字体文件的名称.
setFamily也是如此。
存在的问题:QFile::copy无法监控什么时候完成,所以第一次调用该函数的时候会返回false,因为判断QFontDatabase中是否存在目标字体时,改字体尚在复制操作当中.如果有朋友能看到这篇随笔,而且能够帮助我解决此问题,恳请您帮助。
The QFontDatabase class provides information about the fonts available in the underlying window system. More...
也就是说QFont使用的是系统字体,而不能是自定义字体!
所以为了使用自定义字体,必须将自定义字体安装(copy)到系统字体文件夹中(如C:\windows\fonts).
/* * 名称:modifyFont * 参数:const QString * 功能:更改本程序所使用的字体 * 返回:bool */ bool Monitor::modifyFont(const QString str) { //安装字体 QFile file(tr(":/res/%1.ttf").arg(str)); file.copy(tr("C:/WINDOWS/Fonts/%1.ttf").arg(str)); QFontDatabase fd; QStringList sl = fd.families(); if(sl.contains(str)) { QFont font; font.setFamily(str); setFont(font); return true; } return false; }
注意:字体文件的名称必须是字体的名称。因为QFontDatabase::families获取的是字体的名称,而不是字体文件的名称.
setFamily也是如此。
存在的问题:QFile::copy无法监控什么时候完成,所以第一次调用该函数的时候会返回false,因为判断QFontDatabase中是否存在目标字体时,改字体尚在复制操作当中.如果有朋友能看到这篇随笔,而且能够帮助我解决此问题,恳请您帮助。
相关文章推荐
- Qt:使用自定义的字体
- Qt:使用自定义的字体
- idea 使用总结(svn版本控制修改文件颜色改变,自定义字体颜色)
- iOS开发使用自定义字体
- pdfbox使用自定义字体,官方示例
- 使用位图字体工具BMFont从图片生成自定义字体
- cocos2d-x 使用CCLabelAtlas自定义字体
- cocos2d-x 使用CCLabelAtlas自定义字体
- 前端自定义字体的使用
- 在网站中使用自定义字体
- Qt教程4-使用用户自定义的窗口部件
- 使用CSS3的 @font-face 显示自定义字体
- iOS使用自定义字体
- android下自定义字体的使用方法
- 在Android O中使用自定义字体
- BMFont使用图片自定义字体(无需字体文件)
- React Native 使用自定义字体
- Android 中使用自定义字体的方法
- css网页使用自定义字体方法
- QT:在QTableView中使用各种自定义委托