一生一世学坛

 找回密码
 立即注册
搜索
查看: 5141|回复: 0
打印 上一主题 下一主题

QT控件叠加字体特性-设置字体

[复制链接]

334

主题

385

帖子

6830

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6830
跳转到指定楼层
楼主
发表于 2022-7-1 17:00:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. QTextCharFormat介绍:
  2. QTextCharFormat类提供了QTextDocument中字符的格式化信息。
  3. 文档中文本的字符格式指定文本的可视属性,以及关于其在超文本文档中的角色的信息。
  4. 可以通过向setFont()函数提供字体来设置所使用的字体,并且可以调整其外观的各个方面以获得所需的效果。setFontFamily()和setFontPointSize()定义字体的族(例如时间)和打印大小;setFontWeight()和setFontItalic()提供对字体样式的控制。setFontUnderline()、setFontOverline()、setFontStrikeOut()和setFontFixedPitch()为文本提供额外的效果。

  5. 1.设置字体
  6.         fontlabel1 = new QLabel("字体");
  7.     fontcombobox = new QFontComboBox;
  8.     fontcombobox->setFontFilters(QFontComboBox::ScalableFonts); //列出所有字体
  9.     //创建一个QTextCharFormat类实例
  10.     QTextCharFormat fmt;
  11.     //设置用户选择的字体族
  12.     fmt.setFontFamily(combostr);
  13.     //获取text中的光标
  14.     QTextCursor cursor = ui->text->textCursor();
  15.     //如果光标没有选择高亮
  16.     if(!cursor.hasSelection())
  17.     //选择光标下的字,以空格,“,”,“.”标点符号分隔
  18.     cursor.select(QTextCursor::WordUnderCursor);
  19.     //修改当前块的格式
  20.     cursor.mergeBlockCharFormat(fmt);
  21.     //通过tet上的光标调用函数将修饰符中指定属性合并为当前字符格式
  22.     ui->text->mergeCurrentCharFormat(fmt);

  23. 2.设置字号
  24.         QTextCharFormat fmt;
  25.     fmt.setFontPointSize(spinvalue.toFloat());
  26.     ui->text->mergeCurrentCharFormat(fmt);

  27. 3.设置加粗
  28.         QTextCharFormat fmt;
  29.     fmt.setFontWeight(boldBtn->isChecked()?QFont::bold():QFont::Normal);
  30.     ui->text->mergeCurrentCharFormat(fmt);

  31. 4.设置倾斜
  32.         QTextCharFormat fmt;
  33.     fmt.setFontItalic(italicBtn->isChecked());
  34.     ui->text->mergeCurrentCharFormat(fmt);

  35. 5.设置下划线
  36.         QTextCharFormat fmt;
  37.     fmt.setFontUnderline(underlineBtn->isChecked());
  38.     ui->text->mergeCurrentCharFormat(fmt);

  39. 6.设置颜色
  40.         QColor color = QColorDialog::getColor(Qt::red,this);
  41.     if(color.isValid())
  42.     {
  43.         QTextCharFormat fmt;
  44.         fmt.setForeground(color);
  45.         ui->text->mergeCurrentCharFormat(fmt);
  46.     }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|分享学习  

GMT+8, 2024-5-17 12:23 , Processed in 0.043404 second(s), 6 queries , File On.

声明:本站严禁任何人以任何形式发表违法言论!

本站内容由网友原创或转载,如果侵犯了您的合法权益,请及时联系处理!© 2017 zamxqun@163.com

皖公网安备 34010402700634号

皖ICP备17017002号-1

快速回复 返回顶部 返回列表