QTextEdit 减少 "tab" 键的缩进

QTextEdit Decrease Indentation of "tab" Key

我正在尝试使用 Qt 制作一个 C++ 文本编辑器。当我在编辑器中按键盘上的 "tab" 键时,该行的缩进比必要的多很多。我希望代码缩进大约 3 个空格而不是看起来是 11 个空格。有什么办法可以改变tab键的功能吗?谢谢

要更改 TAB(ASCII 字符 9)宽度,您可以使用 tabStopWidth 属性,QTextEditQPlainTextEdit 都存在(doc link) . 它采用以像素为单位的制表符宽度。注意 TAB 没有固定宽度,而是向前移动到下一个 TAB 停止点 ,其像素间隔由此 属性 确定, 从左边缘开始。

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

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