gtk使用Pango标记语言设置标签文本样式

⌚Time: 2025-05-20 22:48:00

👨‍💻Author: Jack Ge

在gtk2.0中,我使用gtk_label_set_markup()可以设置GtkLabel显示的文本大小,颜色等,为了了解详细信息,源自deepseek ai的回答

Pango 标记语言设置多样文本详解

Pango 标记语言是 GTK 中用于富文本格式化的 XML 风格标记系统,可以通过 gtk_label_set_markup() 或类似函数使用。以下是完整的标记功能详解:

1. 基本文本样式

字体大小

<span size='xx-small'>极小文本</span>
<span size='x-small'>特小文本</span>
<span size='small'>小文本</span>
<span size='medium'>中等文本(默认)</span>
<span size='large'>大文本</span>
<span size='x-large'>特大文本</span>
<span size='xx-large'>极大文本</span>

字体粗细

<span weight='ultralight'>超细</span>
<span weight='light'>细体</span>
<span weight='normal'>正常</span>
<span weight='bold'>粗体</span>
<span weight='ultrabold'>超粗</span>
<span weight='heavy'>特粗</span>

字体样式

<span style='normal'>正常</span>
<span style='oblique'>斜体(模拟)</span>
<span style='italic'>斜体(真实)</span>

下划线与删除线

<span underline='none'>无下划线</span>
<span underline='single'>单下划线</span>
<span underline='double'>双下划线</span>
<span underline='low'>低位下划线</span>
<span underline='error'>错误波浪线</span>

<span strikethrough='true'>删除线</span>

2. 颜色设置

前景色(文字颜色)

<span foreground='red'>红色文本</span>
<span foreground='#ff0000'>十六进制红色</span>
<span foreground='rgb(255,0,0)'>RGB红色</span>

背景色

<span background='yellow'>黄色背景</span>
<span background='#ffff00'>十六进制黄色背景</span>

3. 字体与字形

指定字体族

<span font_family='Sans'>无衬线字体</span>
<span font_family='Serif'>衬线字体</span>
<span font_family='Monospace'>等宽字体</span>
<span font_family='Arial, Helvetica'>多字体备选</span>

字母间距

<span letter_spacing='1024'>宽松间距(1024=1像素)</span>

文本变形

<span variant='normal'>正常</span>
<span variant='smallcaps'>小型大写字母</span>

4. 高级特性

超链接

<a href='https://example.com'>示例链接</a>

文本方向

<span dir='ltr'>从左到右</span>
<span dir='rtl'>从右到左</span>

换行控制

<span allow_breaks='true'>允许换行</span>
<span wrap='word'>按单词换行</span>

5. 组合示例

gtk_label_set_markup(label,
    "<span size='x-large' weight='bold' foreground='blue'>标题</span>\n"
    "<span font_family='Monospace' background='#f0f0f0'><i>代码区</i></span>\n"
    "普通文本 <u>下划线</u> <s>删除线</s>");

注意事项

  1. 所有标记必须正确嵌套和闭合
  2. 特殊字符需要转义:
    • &&amp;
    • <&lt;
    • >&gt;
  3. 在 GTK4 中推荐使用 CSS 代替部分标记功能
  4. 性能考虑:避免频繁更新大量富文本

通过组合这些标记,可以创建出丰富的文本显示效果,适用于标签、按钮、对话框等多种界面元素。