如何将标签长度与Qt中的多个空格匹配

时间:2012-09-26 16:33:51

标签: c++ qt qtextedit

我无法在QTextEdit中制作与某些空格大小相同的标签,例如4。

我在Mac上使用Qt 4.8.1,我尝试了几种不同的等宽字体。在每种情况下,我尝试使用fontMetrics.width()和fontMetrics.boundingRect()。width()。传入''并乘以4然后传入“”会返回一致的大小,但是当我设置制表符停止宽度时它略微偏离。更糟糕的是,错误累积起来。如果我输入6个标签,并在下面输入6 * 4个空格,则光标会在一个截然不同的地方结束。

即使手动调整数字,我也无法找到完全匹配的整数像素数,并且保持标签和等效空格一致。

还有其他人遇到过这个问题吗?您是否找到了用空格替换制表符的解决方案?

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

QFontMetrics::tightBoundingRect("    ")

我在这里找到了这个建议,但不幸的是它没有提到它是否成功:http://lists.qt.nokia.com/pipermail/qt-interest/2009-June/007924.html

请告诉我它是否适合您:)

答案 1 :(得分:0)

我遇到了同样的问题,我在QPlainTextEdit构造函数中调用了setTabStopWidth(4 * fontMetrics().width(' '));。但是当我在构造函数之后调用它时,它可以工作!我不知道它背后的魔力......