1

我正在使用Qt 的 WebKit 实现创建富文本编辑器。这个简单的页面:

<html>
    <head>
    </head>
    <body style="white-space:pre" contenteditable="true">
        test text
    </body>
</html>

在 Firefox (17.0.1) 或 Chrome (23.0.1271.95) 中加载时表现如预期(按 Tab 键会更改焦点,但粘贴制表符会插入制表符,将其后的内容对齐到下一个制表位 - 不被视为单个空格)。请注意,Chrome 是基于 WebKit。

在 QWebView 中加载的同一页面具有以下正文样式:

 word-wrap: break-word;
 -webkit-nbsp-mode: space;
 -webkit-line-break:
 after-white-space;
 white-space: pre; 

(根据内置检查员)。

当按下 tab 键时,下面的片段被插入:

<span class="Apple-tab-span" style="white-space:pre"> </span>

并渲染了一个简单的空间。

粘贴制表符时,会添加一个简单的空格(没有上面的 span 标签)。

通过使用 toHtml() 方法保存 html,我可以看到这些字符是制表符。所以问题是如何说服 QWebView “正确”呈现选项卡(将其后面的内容与下一个制表位对齐)。

Qt 版本是 4.8.3(实际上是一个月前从主干构建的)。

4

0 回答 0