Переопределяющее событие в tcltk tktext в R
Я использую элемент tktext с пакетом tcltk в R. Я хотел бы добиться, чтобы при нажатии клавиши Tab выполнялась пользовательская функция, но к тексту не добавлялось фактическое пространство табуляции.
С помощью tkbind(tkTextField, "<Tab>", function(x) {tabFunction(tkTextField)})
Я могу выполнить пользовательскую функцию, но "\t" все еще вставляется в текст. С tkbind(feldInp, "<Tab>", "break")
Вкладка опущена, но функция не выполняется.
Как я могу объединить оба?
1 ответ
Решение
Вы можете добавить 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")