使 Tab 键在文本框 tkinter 中执行 4 space 而不是 8

make Tab key do 4 space instead 8 in textbox tkinter

我正在尝试使用 tkinter 创建一个文本编辑器 当我点击键盘上的 Tab 键时它有 8 个空格我希望它只做 4 个空格而不是 8 个 代码:

import tkinter as tk

root = tk.Tk()
root.title('Text editor')

text = tk.Text(root)
text.pack()


root.mainloop()

试试这个:

import tkinter as tk

def tab_pressed(event:tk.Event) -> str:
    # Insert the 4 spaces
    text.insert("insert", " "*4)
    # Prevent the default tkinter behaviour
    return "break"

root = tk.Tk()

text = tk.Text(root)
text.pack()
text.bind("<Tab>", tab_pressed)

root.mainloop()

我使用 .bindreturn "break" 添加了我自己的功能,以便在阻止 tkinter 的默认行为时按下 tab 键。

如果您只希望制表符为 4 个空格宽,请查看 here

from tkinter import *
import tkinter.font as tkfont

root = Tk()

text = Text(root)
text.pack()

font = tkfont.Font(font=text["font"])

tab_width = font.measure(" " * 4)
text.config(tabs=tab_width)

root.mainloop()

tab_width = font.measure(" " * 4) 只是将制表符设置为 4 个空格,然后 text.config(tabs=tab_width) 将更改应用到文本框 text.

希望这对朋友有帮助,干杯!