Переопределяющее событие в 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")
Другие вопросы по тегам