在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>背景色
3. 字体与字形
指定字体族
<span font_family='Sans'>无衬线字体</span>
<span font_family='Serif'>衬线字体</span>
<span font_family='Monospace'>等宽字体</span>
<span font_family='Arial, Helvetica'>多字体备选</span>字母间距
文本变形
4. 高级特性
超链接
文本方向
换行控制
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>");注意事项
- 所有标记必须正确嵌套和闭合
- 特殊字符需要转义:
&→&<→<>→>
- 在 GTK4 中推荐使用 CSS 代替部分标记功能
- 性能考虑:避免频繁更新大量富文本
通过组合这些标记,可以创建出丰富的文本显示效果,适用于标签、按钮、对话框等多种界面元素。