GTK+中文社区(gtk.awaysoft.com)

 找回密码
 马上加入

QQ登录

只需一步,快速开始

查看: 3643|回复: 6

在windows中GTK无法显示粗体,怎么解决?

[复制链接]

该用户从未签到

发表于 2011-3-18 19:11:47 | 显示全部楼层 |阅读模式
在windows中用GTK开发应用,之前用GTK-2.10.11,在界面上定义 <b></b>标签,能正常显示粗体字。但在GTK-2.12.9中不能正常显示。用gtk-2.22.1也是不能显示粗体字。不知是什么原因,望高手指点,谢谢!
使用gtk-2.10.11



使用gtk-2.12.9

该用户从未签到

发表于 2011-4-3 06:45:21 | 显示全部楼层
检查一下gtk的字体配置文件(其实是fontconfig的配置文件),Windows版的gtk应该在gtk安装目录下的 etc/font 下有个 fonts.conf 的文件(xml格式),看看里面包含粗体了没?没有的话加上,然后执行一下font-cache

该用户从未签到

 楼主| 发表于 2011-4-7 17:48:09 | 显示全部楼层
谢谢nketc!
不知怎样添加粗体?还有,找不到font-cache

该用户从未签到

 楼主| 发表于 2011-4-7 18:21:55 | 显示全部楼层
我比较过两个版本的fonts.conf内容是一模一样的。内容如下:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>

<!--
    DO NOT EDIT THIS FILE.
    IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
    LOCAL CHANGES BELONG IN 'local.conf'.

    The intent of this standard configuration file is to be adequate for
    most environments.  If you have a reasonably normal environment and
    have found problems with this configuration, they are probably
    things that others will also want fixed.  Please submit any
    problems to the fontconfig bugzilla system located at fontconfig.org

    Note that the normal 'make install' procedure for fontconfig is to
    replace any existing fonts.conf file with the new version.  Place
    any local customizations in local.conf which this file references.

    Keith Packard
-->

<!-- Font directory list -->

    <dir>WINDOWSFONTDIR</dir>
    <dir>/usr/X11R6/lib/X11/fonts</dir>
    <dir>~/.fonts</dir>

<!-- Font cache directory list -->

    <cachedir>WINDOWSTEMPDIR_FONTCONFIG_CACHE</cachedir>
    <cachedir>~/.fontconfig</cachedir>

<!--
  Accept deprecated 'mono' alias, replacing it with 'monospace'
-->
    <match target="pattern">
        <test qual="any" name="family">
            <string>mono</string>
        </test>
        <edit name="family" mode="assign">
            <string>monospace</string>
        </edit>
    </match>

<!--
  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
-->
    <match target="pattern">
        <test qual="any" name="family">
            <string>sans serif</string>
        </test>
        <edit name="family" mode="assign">
            <string>sans-serif</string>
        </edit>
    </match>

<!--
  Accept deprecated 'sans' alias, replacing it with 'sans-serif'
-->
    <match target="pattern">
        <test qual="any" name="family">
            <string>sans</string>
        </test>
        <edit name="family" mode="assign">
            <string>sans-serif</string>
        </edit>
    </match>

<!--
  Load local system customization file
-->
    <include ignore_missing="yes">conf.d</include>

    <config>
<!--
  These are the default Unicode chars that are expected to be blank
  in fonts.  All other blank chars are assumed to be broken and
  won't appear in the resulting charsets
-->
        <blank>
            <int>0x0020</int>    <!-- SPACE -->
            <int>0x00A0</int>    <!-- NO-BREAK SPACE -->
            <int>0x00AD</int>    <!-- SOFT HYPHEN -->
            <int>0x034F</int>    <!-- COMBINING GRAPHEME JOINER -->
            <int>0x0600</int>    <!-- ARABIC NUMBER SIGN -->
            <int>0x0601</int>    <!-- ARABIC SIGN SANAH -->
            <int>0x0602</int>    <!-- ARABIC FOOTNOTE MARKER -->
            <int>0x0603</int>    <!-- ARABIC SIGN SAFHA -->
            <int>0x06DD</int>    <!-- ARABIC END OF AYAH -->
            <int>0x070F</int>    <!-- SYRIAC ABBREVIATION MARK -->
            <int>0x115F</int>    <!-- HANGUL CHOSEONG FILLER -->
            <int>0x1160</int>    <!-- HANGUL JUNGSEONG FILLER -->
            <int>0x1680</int>    <!-- OGHAM SPACE MARK -->
            <int>0x17B4</int>    <!-- KHMER VOWEL INHERENT AQ -->
            <int>0x17B5</int>    <!-- KHMER VOWEL INHERENT AA -->
            <int>0x180E</int>    <!-- MONGOLIAN VOWEL SEPARATOR -->
            <int>0x2000</int>    <!-- EN QUAD -->
            <int>0x2001</int>    <!-- EM QUAD -->
            <int>0x2002</int>    <!-- EN SPACE -->
            <int>0x2003</int>    <!-- EM SPACE -->
            <int>0x2004</int>    <!-- THREE-PER-EM SPACE -->
            <int>0x2005</int>    <!-- FOUR-PER-EM SPACE -->
            <int>0x2006</int>    <!-- SIX-PER-EM SPACE -->
            <int>0x2007</int>    <!-- FIGURE SPACE -->
            <int>0x2008</int>    <!-- PUNCTUATION SPACE -->
            <int>0x2009</int>    <!-- THIN SPACE -->
            <int>0x200A</int>    <!-- HAIR SPACE -->
            <int>0x200B</int>    <!-- ZERO WIDTH SPACE -->
            <int>0x200C</int>    <!-- ZERO WIDTH NON-JOINER -->
            <int>0x200D</int>    <!-- ZERO WIDTH JOINER -->
            <int>0x200E</int>    <!-- LEFT-TO-RIGHT MARK -->
            <int>0x200F</int>    <!-- RIGHT-TO-LEFT MARK -->
            <int>0x2028</int>    <!-- LINE SEPARATOR -->
            <int>0x2029</int>    <!-- PARAGRAPH SEPARATOR -->
            <int>0x202A</int>    <!-- LEFT-TO-RIGHT EMBEDDING -->
            <int>0x202B</int>    <!-- RIGHT-TO-LEFT EMBEDDING -->
            <int>0x202C</int>    <!-- POP DIRECTIONAL FORMATTING -->
            <int>0x202D</int>    <!-- LEFT-TO-RIGHT OVERRIDE -->
            <int>0x202E</int>    <!-- RIGHT-TO-LEFT OVERRIDE -->
            <int>0x202F</int>    <!-- NARROW NO-BREAK SPACE -->
            <int>0x205F</int>    <!-- MEDIUM MATHEMATICAL SPACE -->
            <int>0x2060</int>    <!-- WORD JOINER -->
            <int>0x2061</int>    <!-- FUNCTION APPLICATION -->
            <int>0x2062</int>    <!-- INVISIBLE TIMES -->
            <int>0x2063</int>    <!-- INVISIBLE SEPARATOR -->
            <int>0x206A</int>    <!-- INHIBIT SYMMETRIC SWAPPING -->
            <int>0x206B</int>    <!-- ACTIVATE SYMMETRIC SWAPPING -->
            <int>0x206C</int>    <!-- INHIBIT ARABIC FORM SHAPING -->
            <int>0x206D</int>    <!-- ACTIVATE ARABIC FORM SHAPING -->
            <int>0x206E</int>    <!-- NATIONAL DIGIT SHAPES -->
            <int>0x206F</int>    <!-- NOMINAL DIGIT SHAPES -->
            <int>0x3000</int>    <!-- IDEOGRAPHIC SPACE -->
            <int>0x3164</int>    <!-- HANGUL FILLER -->
            <int>0xFEFF</int>    <!-- ZERO WIDTH NO-BREAK SPACE -->
            <int>0xFFA0</int>    <!-- HALFWIDTH HANGUL FILLER -->
            <int>0xFFF9</int>    <!-- INTERLINEAR ANNOTATION ANCHOR -->
            <int>0xFFFA</int>    <!-- INTERLINEAR ANNOTATION SEPARATOR -->
            <int>0xFFFB</int>    <!-- INTERLINEAR ANNOTATION TERMINATOR -->
        </blank>
<!--
  Rescan configuration every 30 seconds when FcFontSetList is called
-->
        <rescan>
            <int>30</int>
        </rescan>
    </config>

</fontconfig>

该用户从未签到

发表于 2011-4-8 07:34:24 | 显示全部楼层
glade版本换过吗?Windowsa版的glade会自带一个gtk的运行环境

该用户从未签到

 楼主| 发表于 2011-4-8 17:20:35 | 显示全部楼层
glade换过几个版本了。情况是一样的,只要是在gtk_2.10.11下面就是正常可以显示粗体。在gtk_2.12.9下面就不行。

该用户从未签到

发表于 2011-5-24 17:01:06 | 显示全部楼层
直接用gtk_label_set_markup(GTK_LABEL(label), "<span font_desc='simsun bold 12'>bold font</span>");
*滑块验证:
您需要登录后才可以回帖 登录 | 马上加入

本版积分规则

申请友链|Archiver|小黑屋|手机版|GTK+中文社区 ( 粤ICP备13080851号 )

我要啦免费统计

GMT+8, 2024-5-14 10:26 , Processed in 0.396715 second(s), 7 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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