使 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()
我使用 .bind
和 return "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
.
希望这对朋友有帮助,干杯!
我正在尝试使用 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()
我使用 .bind
和 return "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
.
希望这对朋友有帮助,干杯!