Hen*_*Zhu 3 python tkinter python-3.x
下面的代码应该将按下时的制表符空格数设置为 4。问题是它没有这样做(而是 8)。我查看了以前的 StackOverflow 问题,它们非常模糊。他们描述了使用 getPixels 函数,但从未解释如何使用它。加上 tkinter / tcl 文档很糟糕,所以我很困惑。
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.pack()
def tab(arg):
print("tab pressed")
text.insert(tk.INSERT, " " * 4)
text.bind("<Tab>", tab)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
小智 7
你非常接近你所需要的。您需要做的就是将 return 'break' 添加到您的 tab(arg) 函数中。这将阻止 tkinter 进一步传播事件。见下文
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.pack()
def tab(arg):
print("tab pressed")
text.insert(tk.INSERT, " " * 4)
return 'break'
text.bind("<Tab>", tab)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
通过添加返回“中断”,您可以阻止 tkinter 进一步传播事件。您将获得 8 个空格,因为它使用了制表符,然后您在其上添加了额外的 4 个空格。
希望这可以帮助 :)
| 归档时间: |
|
| 查看次数: |
3042 次 |
| 最近记录: |