QTextEdit减少"标签"的缩进键

时间:2016-08-06 18:46:43

标签: qt qtextedit

我正在尝试使用 Qt 创建一个 C ++ 文本编辑器。当我在编辑器中按下键盘上的"tab"键时,它会使线条缩进比必要的多得多。我希望代码缩进大约3个空格而不是看起来是11个空格。有没有办法改变tab键的功能?感谢。

1 个答案:

答案 0 :(得分:3)

要更改TAB(ASCII字符9)宽度,您可以使用tabStopWidthQTextEdit doc link)存在的QPlainTextEdit属性。它采用标签宽度请注意,TAB没有固定的宽度,而是向前移动到下一个 TAB stop ,它们是以此属性确定的像素间隔,从左边缘开始。

如果您希望TAB宽度依赖于字体,可以使用QFontMetrics类来获取某些字体和字符的像素宽度。示例代码:

    // this object is QTextEdit or QPlainTextEdit or a subclass
    int fontWidth = QFontMetrics(this->currentCharFormat().font()).averageCharWidth();
    this->setTabStopWidth( 3 * fontWidth );