R中tcltk tktext中的覆盖事件

Overriding event in tcltk tktext in R

我在 R 中使用带有 tcltk 包的 tktext 元素。 我想实现的是,当您按下 Tab 键时,会执行一个自定义函数,但没有实际的选项卡 space 添加到文本中。

使用 tkbind(tkTextField, "<Tab>", function(x) {tabFunction(tkTextField)}) 我可以执行自定义函数,但“\t”仍插入文本中。 使用 tkbind(feldInp, "<Tab>", "break") 选项卡被省略但不执行任何功能。

如何将两者结合起来?

你可以在绑定自己的函数后添加一个break,像这样

library(tcltk2)

window <- tktoplevel()

window$env$txt <- tk2text(window, width = 60, height = 10)
tkpack(window$env$txt, fill = "both", expand = TRUE)

tkinsert(window$env$txt, "1.0", "Text")

tkbind(window$env$txt, "<Tab>", {function(x)tabFunction(window$env$txt)})
tkbind(window$env$txt, "<Tab>", "+ break")

tabFunction <- function(x) print("Message")