当前位置:  开发笔记 > 编程语言 > 正文

使用Qt的QLabel类在呈现的HTML中更改制表位大小

如何解决《使用Qt的QLabel类在呈现的HTML中更改制表位大小》经验,为你挑选了1个好方法。

我在QT QLabel中渲染了一些HTML.HTML看起来像这样:

foo\tbar

(请注意,我已将"\ t"放在代码中有标签字符的位置).

这渲染很好,但制表符似乎呈现为八个空格,而我希望它被渲染为4.如何在不更改源HTML的情况下更改它



1> strager..:

根据W3(HTML4):

水平制表符(十进制9 [ISO10646]和[ISO88591])通常是通过可视用户代理解释为最小非零数的必要向上沿着每8个字符是制表位行字符的空格.我们强烈建议使用水平选项卡中预先格式化文本,因为它是常见的做法,在编辑时,要设置制表间距为其他值,导致失调文件.

它是实现定义的,基本上是.大多数(如果不是全部)浏览器/渲染器使用八个空格作为选项卡.这不能在Qt中配置.

然而,通过HTML并使用您希望的多个空格替换选项卡是有点微不足道的.为此编写一个简单的解析器.伪代码:

for each 
 block {
    for each line in block {
        position_in_line = 0

        for each character in line {
            if character is a tab {
                remove tab character

                do {
                    add a space character

                    ++position_in_line
                } while position_in_line % 8 != 0
            } else {
                ++position_in_line
            }
        }
    }
}

如果你很好奇,HTML3指定使用八个字符的标签:

,的标签应被解释为转移水平列位置到下一个位置,该位置的8在同一行上的倍数; 也就是说,col:=(col + 8)mod 8.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有