python - 将所有制表符操作替换为在 QPlainTextEdit 小部件中插入四个空格

标签 python qt pyqt pyside

我有一个 QPlainTextEdit 对象,我在我的工具之一中将其用作迷你 python 编辑器。问题是,当您在 QPlainTextEdit 中插入制表符时,它会插入一个很大的制表符,而不是像我希望的那样插入四个空格。

是否有办法覆盖此功能,就像在 Notepad++ 等程序中一样?

最佳答案

使用setTabStopWidth(width)方法可以更改一个选项卡占用的空间大小。它需要以像素为单位的宽度。默认值为 80。

如果需要将所有制表符替换为四个空格,可以从qtextedit中获取字符串然后替换

s= text_edit.toPlainText()
s= s.replace('\t', '    ')

QTextEdit中更改制表符宽度:

from PyQt5.QtWidgets import *
import sys

class Wind(QWidget):
    def __init__(self):
        super().__init__()
        self.setupUI()

    def setupUI(self):
        self.setGeometry(300,300, 300,500)
        self.show()

        vb_layout= QVBoxLayout(self)

        text_edit= QTextEdit(self)

        # This method sets tab width in pixels
        text_edit.setTabStopWidth(8)

        vb_layout.addWidget(text_edit)
        self.setLayout(vb_layout)

def main():
    app= QApplication(sys.argv)
    w = Wind()
    exit(app.exec_())


if __name__ == '__main__':
    main()

关于python - 将所有制表符操作替换为在 QPlainTextEdit 小部件中插入四个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45880941/

相关文章:

python - 如何使用装饰器将变量注入(inject)范围?

python - 将 aws 后端连接到 firebase 数据库

python - pycrypto 在 suse 11.2 和 python 2.6 上安装奇怪的字符错误,我想我会分享

Python Qt 和多行 qlabel

window - 如何让 PyQt 窗口在选择 "X"关闭按钮时调用方法

python如何循环一个函数

c++ - 在 QTableView 中显示动画图标的最佳方式是什么?

qt - 在 Qt Designer 中删除 Dock Widget?

python - 使用 PyQt 和 matplotlib 在可滚动小部件中显示多个图

python - 我想将文本放入 pyqt QCalendarWidget