2

QTextEdit のタブをいくつかのスペースと同じサイズ、たとえば 4 にするのに問題があります。

MacでQt 4.8.1を使用しており、いくつかの異なる等幅フォントを試しました。いずれの場合も、fontMetrics.width() と fontMetrics.boundingRect().width() を使用してみます。' ' を渡して 4 を掛けて " " を渡すと一貫したサイズが返されますが、タブ ストップの幅を設定すると少しずれます。さらに悪いことに、エラーが蓄積されます。6 つのタブを入力し、その下に 6 * 4 スペースを入力すると、カーソルは劇的に異なる場所に移動します。

数字を手で微調整しても、正確に一致し、タブと同等のスペースの一貫性を保つ整数のピクセル数を見つけることができませんでした。

他の誰かがこの問題に遭遇しましたか? タブをスペースに置き換える以外の解決策を見つけましたか?

4

2 に答える 2

0

これを使ってみましたか?

QFontMetrics::tightBoundingRect("    ")

ここで提案を見つけましたが、残念ながらそれが成功したかどうかは言及されていません: http://lists.qt.nokia.com/pipermail/qt-interest/2009-June/007924.html

それがあなたのために働くかどうか私に知らせてください:)

于 2012-09-27T14:02:28.423 に答える
0

私はあなたと同じ問題を抱えていましsetTabStopWidth(4 * fontMetrics().width(' '));た.QPlainTextEditコンストラクターを呼び出します.しかし、コンストラクターの後に呼び出すと、機能します!その背後にある魔法はわかりません...

于 2015-06-14T12:44:17.680 に答える