python - 删除 tkinter 文本默认绑定(bind)

标签 python tkinter widget

我正在制作一个简单的 tkinter 文本编辑器,但我希望尽可能删除 文本小部件 的所有默认绑定(bind)。

例如,当我按下 Ctrl + i 时,它会默认插入一个制表符。 我做了一个事件绑定(bind)来打印文本框中有多少行,我也将事件绑定(bind)设置为 Ctrl + i

当我运行它时,它会打印文本框中的行数,还会插入一个制表符。

我想知道如何覆盖默认绑定(bind),或者了解如何删除所有默认绑定(bind)。

顺便说一句,这是我的代码:

from tkinter import *

class comd: # Contains primary commands
    # Capital Rule ----------------------------
    # G = Get | I = Insert | D = Draw | S = Set
    # -----------------------------------------

    def Ggeo(self): # Get Geometry (Get window geometry)
        x = root.winfo_width()
        y = root.winfo_height()
        print("Current Window Geometry")
        print(str(x) + " x " +str(y))

    def Idum(self): # Insters "Dummy Insert"
        import tkinter as tkin
        tbox.insert(INSERT, "Dummy Insert")

    def Ilim(self): # Prints How many lines are in
        info =  int(tbox.index('end-1c').split('.')[0])
        print(info)



root = Tk()
root.geometry("885x600-25-25")

tbox = Text(root, font=("Courier","14","bold"))
tbox.pack(expand = True , fill = BOTH)


# Problem here --------------------
tbox.bind("<Control-i>", comd.Ilim)
# ---------------------------------


mainloop()

最佳答案

您可以通过让您的函数返回字符串 "break" 来覆盖绑定(bind)。例如:

def Ilim(self): # Prints How many lines are in
    info =  int(tbox.index('end-1c').split('.')[0])
    print(info)
    return "break"

如果您想完全删除所有绑定(bind)(包括允许您插入字符的绑定(bind)),这很容易实现。所有绑定(bind)都与“绑定(bind)标签”(或“绑定(bind)标签”)相关联。如果删除 bindtag,则删除绑定(bind)。

例如,这将删除所有默认绑定(bind):

    bindtags = list(tbox.bindtags())
    bindtags.remove("Text")
    tbox.bindtags(tuple(bindtags))

有关绑定(bind)标签的更多信息,请参阅此答案:https://stackoverflow.com/a/11542200/7432

关于python - 删除 tkinter 文本默认绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31326766/

相关文章:

python - 如何在单击按钮时更新 tkinter 笔记本选项卡?

c++ - 在主小部件下添加小部件(控制台)QT

c++ - 在 QT 的布局中插入小部件后修复选项卡顺序

javascript - WordPress小部件中的重复表单字段?

python - 有没有办法使用 ffmpeg 将 RTSP 音频流仅流式传输到标准输出

python - 想要 Python 创建一个 UTF-8 文件,得到了一个 ANSI 文件。为什么?

python - 从图像中的绝对点创建相对点网格

python - 显示模式窗口时隐藏 Tkinter 根窗口

python - 登录远程网站

python - 如何更改 Tkinter 中文本的颜色?