QTextEdit减少“tab”键的缩进

Arc*_*man 3 qt qtextedit

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

hyd*_*yde 6

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

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

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