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; 

(ビルトインインスペクターによる)。

タブキーを押すと、次のフラグメントが挿入されます。

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

シンプルなスペースがレンダリングされます。

タブ文字を貼り付けると、単一の単純なスペースが追加されます(上記のスパンタグなし)。

toHtml()メソッドでhtmlを保存すると、文字がタブ文字であることがわかります。したがって、問題は、QWebViewにタブを「適切に」レンダリングするように(それに続くコンテンツを次のタブストップに揃えるために)どのように説得するかです。

Qtバージョンは4.8.3です(実際には数か月前にトランクからビルドされました)。

4

0 に答える 0